2015-07-08 18 views
5

मैं एक नेस्टेड सूची के रूप में नीचे देख सकते हैं:पायथन में नेस्टेड सूचियों को कैसे सूचीबद्ध किया जाए?

A = [('a', 'b', 'c'), 
    ('d', 'e', 'f'), 
    ('g', 'h', 'i')] 

और मैं कोड का उपयोग कर प्रत्येक सूची के पहले तत्व मुद्रित करने के लिए कोशिश कर रहा हूँ:

A = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')] 
print A[:][0] 

लेकिन मैं निम्नलिखित उत्पादन प्राप्त करें:

('a', 'b', 'c') 

आवश्यक उत्पादन:

('a', 'd', 'g') 

पायथन में यह आउटपुट कैसे प्राप्त करें?

उत्तर

6

A[:] बस पूरी सूची की एक प्रति बनाता है, जिसके बाद आपको उस प्रतिलिपि के 0 तत्व मिलते हैं।

[tup[0] for tup in A] 

एक सूची प्राप्त है, या एक जनरेटर अभिव्यक्ति के साथ tuple() उपयोग करने के लिए एक टपल पाने के लिए:

tuple(tup[0] for tup in A) 

डेमो:

>>> A = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')] 
>>> [tup[0] for tup in A] 
['a', 'd', 'g'] 
>>> tuple(tup[0] for tup in A) 
('a', 'd', 'g') 

आप यहाँ एक सूची समझ उपयोग करने की आवश्यकता

1

पायथन सूची बहु-आयामी सरणी के रूप में बहुत अच्छी तरह से काम नहीं करती है। आपको एक अतिरिक्त निर्भरता (जैसे आप सरणी हेरफेर का एक बहुत क्या करने जा रहे हैं) को जोड़ने के लिए तैयार हैं, तो numpy आप

import numpy as np 
A = np.array([('a', 'b', 'c'), 
       ('d', 'e', 'f'), 
       ('g', 'h', 'i')]) 

के लिए लगभग सटीक सिंटैक्स आप देख रहे हैं का उपयोग करने के लिए अनुमति देता है

>>> A[:,0] 
array(['a', 'd', 'g']) 

एक टपल के रूप में पहली पंक्ति प्राप्त करने के लिए:

यह एक np.array के रूप में पंक्ति (जो एक सूची की तरह पहुँचा जा सकता है) आउटपुट

>>> tuple(A[:,0]) 
('a', 'd', 'g') 
2

आप zip(*list_of_lists) के साथ सूचियों/टुपल्स की एक सूची का स्थानांतरण कर सकते हैं, फिर इच्छित वस्तुओं का चयन करें।

>>> a 
[('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')] 
>>> b = zip(*a) 
>>> b 
[('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')] 
>>> b[0] 
('a', 'd', 'g') 
>>> 
>>> c = zip(*a)[0] 
>>> c 
('a', 'd', 'g') 
>>> 
1

आप भी इसे इस तरह से कर सकते हैं:

>>> A = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')] 
>>> map(lambda t:t[0], A) 
['a', 'd', 'g'] 
>>> tuple(map(lambda t:t[0],A)) 
('a', 'd', 'g') 
1

तुम भी व्यवहार आप pandas का उपयोग कर करना चाहते हैं इस प्रकार प्राप्त कर सकते हैं:

In [1]: import pandas as pd 

In [2]: A = [('a', 'b', 'c'), 
    ('d', 'e', 'f'), 
    ('g', 'h', 'i')] 

In [3]: df = pd.DataFrame(A) 

In [4]: df[:][0] 
Out[4]: 
0 a 
1 d 
2 g 
Name: 0, dtype: object 

In [5]: df[:][0].values 
Out[5]: array(['a', 'd', 'g'], dtype=object) 
संबंधित मुद्दे