2011-01-26 6 views

उत्तर

73

एक सूची समझ के साथ।

[x[1] for x in L] 
+36

मुझे समझ में आता है कि यह एक साधारण सवाल है। क्या ऐसा इतना elitist जगह है? प्रश्न को गुमराह करने का प्रयास करें, नतीजे मुझे नहीं चाहिए। मैंने पाइथन को कड़ी मेहनत से सीख लिया और मुझे वहां यह नहीं मिला। मैंने पाइथन सीखने के सर्वोत्तम दृष्टिकोण के बारे में प्रश्न पूछे हैं और सर्वसम्मति से जवाब एक मूल पुस्तक प्राप्त करना है और बस गोता लगाने का है। यह मुझे निराश करता है और साथ ही मुझे किसी भी पुस्तक या ऑनलाइन सामग्री में समाधान नहीं मिल रहा है अभी तक? इसके अलावा आपकी टिप्पणी वास्तव में उपयोगी नहीं है और नए सदस्यों को नए सदस्यों को एसओ पर पोस्ट करने से हतोत्साहित करती है। – super9

+1

@ नाई: मैं पाइथन ट्यूटोरियल पढ़ने का सुझाव देता हूं: http://docs.python.org/tutorial/index.html। सामान्य रूप से, दस्तावेज़ीकरण बहुत अच्छा है। और कभी-कभी, केवल एक को आजमा देना पड़ता है;) –

+13

मैंने टुपल सूची में किसी आइटम तक पहुंचने के इरादे से "टुपल में आइटम एक्सेस करना" गुगल किया। यह मुझे आपके प्रश्न में लाया तो धन्यवाद। मैं पाइथन के लिए बिल्कुल नया हूं और विशेष रूप से सहज ज्ञान नहीं मिला, लेकिन यह सिर्फ मुझे है! –

-1

मैं सुझाव दे सकता है:

Norm Matloff's Quick Python Tutorials

tuples पर अनुभाग पर जाएं। पाइथन बुनियादी सिद्धांतों को सीखने के लिए आपके पास उत्तर और साथ ही एक बेहतर मार्गदर्शिका होगी।

+0

लिंक टूटा हुआ है। क्या आप नई जगह जानते हैं जहां यह अब रह रहा है – LonelySoul

+0

@LonelySoul: इसे ठीक किया गया। – LarsH

55

इग्नासिओ का जवाब वह है जो आप चाहते हैं। हालांकि, जैसा कि कोई भी पाइथन सीख रहा है, मुझे इसे आपके लिए विच्छेदन करने की कोशिश करें ... जैसा कि बताया गया है, यह एक सूची समझ है (उदाहरण के लिए DiveIntoPython3 में कवर किया गया है)। यहाँ कुछ बिंदु हैं:

[x[1] for x in L]

  • सूचना [] 'कोड की रेखा के आसपास है। ये एक सूची परिभाषित करते हैं। यह आपको बताता है कि यह कोड एक सूची देता है, इसलिए यह list प्रकार का है। इसलिए, इस तकनीक को "सूची समझ" कहा जाता है।
  • एल आपकी मूल सूची है। तो आपको उपर्युक्त कोड निष्पादित करने से पहले L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)] को परिभाषित करना चाहिए।
  • x एक चर है कि केवल समझ में मौजूद है - उपयोग करने के लिए समझ का x बाहर प्रयास करें, या इसके बाद के संस्करण लाइन को क्रियान्वित करने के बाद type(x) टाइप करें और इसे आप NameError: name 'x' is not defined बता देंगे, type(L) रिटर्न <class 'list'> जबकि।
  • x[1] प्रत्येक ट्यूपल्स में सेकंड आइटम को इंगित करता है जबकि x[0] पहले आइटमों में से प्रत्येक को इंगित करेगा।
  • तो कोड की यह पंक्ति सचमुच पढ़ती है "सूची में सभी tuples के लिए दूसरे आइटम को एक tuple में वापस लाएं।"

यह बताना मुश्किल है कि आपने सवाल पूछने से पहले समस्या का कितना प्रयास किया था, लेकिन शायद आप समझ से परिचित नहीं थे? मैं Chapter 3 of DiveIntoPython, या समझ पर किसी भी संसाधन के माध्यम से पढ़ने में कुछ समय व्यतीत करूंगा। सौभाग्य।

+4

2.x में, 'x' एलसी के बाहर मौजूद होगा, इसके साथ अंतिम मूल्य बाध्य होगा। यह 3.x में तय है। –

+0

मुझे यह एहसास नहीं हुआ। जानकारी के लिए धन्यवाद। – gary

+2

बहुत बढ़िया स्पष्टीकरण @gary। मैं विशेष रूप से आपकी ओर इशारा करता हूं कि एल क्या संदर्भित करता है। –

5

एक सूची समझ पूरी तरह से करने का तरीका है। एक और तरीका है कि तेज होना map और itemgetter होना चाहिए।

import operator 

new_list = map(operator.itemgetter(1), old_list) 

टिप्पणी कि ओपी गूगल पर एक जवाब नहीं मिल सका के जवाब में, मैं यह करने के लिए एक सुपर अनुभवहीन तरह से बाहर बिंदु होगा।

new_list = [] 
for item in old_list: 
    new_list.append(item[1]) 

इस का उपयोग करता है:

  1. एक चर की घोषणा एक खाली सूची के संदर्भ के लिए।
  2. ए लूप के लिए।
  3. किसी सूची पर append विधि को कॉल करना।

किसी न खुद के लिए एक साथ इन बुनियादी टुकड़े डाल सकते हैं एक भाषा सीखने की कोशिश कर रहा है और जाता है, तो वे एक व्यायाम के रूप में यह देखने की जरूरत है और यह स्वयं करते, भले ही वह बीस घंटे लगते हैं।

एक जानने के लिए एक चाहता है के बारे में सोचने और है कि तुलना उपकरण उपलब्ध करने के लिए कैसे की जरूरत है। मेरे दूसरे उत्तर में प्रत्येक तत्व को मूलभूत ट्यूटोरियल में शामिल किया जाना चाहिए। आप पढ़ने के बिना प्रोग्राम नहीं सीख सकते हैं।