Python में सूचियाँ बनाना बहुत आसान है। आप [0] * 50 का उपयोग करके 0 से भरे 50 तत्वों की एक सूची बना सकते हैं। एक अन्य तरीका जो आपको तत्वों पर अधिक नियंत्रण देता है, वह है for लूप का उपयोग करके एक-एक करके तत्वों को जोड़ना। फिर भी, सूची बनाने का एक और तरीका है जिसे लिस्ट कॉम्प्रिहेंशन कहते हैं। यदि हम 1 से 100 तक की संख्याओं के वर्गों की सूची बनाना चाहते हैं, तो हम ऐसा इस तरह कर सकते हैं:
squares = []
for n in range(1, 100):
squares.append(n * n)
print(squares)
squares = [n * n for n in range(1, 100)]
print(squares)
इन दोनों प्रोग्रामों का आउटपुट एक ही होगा और वे वर्गों की समान सूची बनाएंगे - [1, 4, 9, 16, 25, 36, 49, 64, 81, ..., 9216, 9409, 9604, 9801]।
इस प्रकार, लिस्ट कॉम्प्रिहेंशन की सिंटैक्स है:
कॉम्प्रिहेंशन को खोलने और बंद करने वाले कोष्ठकों [] के अंदर रखा जाता है।
for लूप मानों पर इटरेट करता है।
सूची के तत्व for कीवर्ड से पहले आते हैं और वे for लूप के चर पर निर्भर हो सकते हैं।
मान लीजिए हमें जन्मदिन के निमंत्रण भेजने हैं, और हमने उन नामों की एक सूची बनाई है जिन्हें हम आमंत्रित करना चाहते हैं, लेकिन गलती से वे सारे छोटे अक्षरों में हैं। अब हम लिस्ट कॉम्प्रिहेंशन का उपयोग करके इसे ठीक कर सकते हैं:
invites = [
'anna',
'alice',
'bob',
'simon',
'thomas'
]
fixed = []
for name in invites:
fixed.append(name.title())
print(fixed)
invites = [
'anna',
'alice',
'bob',
'simon',
'thomas'
]
fixed = [name.title() for name in invites]
print(fixed)
इन दोनों प्रोग्रामों का आउटपुट होगा ['Anna', 'Alice', 'Bob', 'Simon', 'Thomas']।
चुनौती
दिए गए n नाम और उपनामों में से, आपको नामों को निकालकर प्रारंभिक सूची और केवल नामों की सूची दोनों को प्रिंट करना है।
इनपुट की पहली पंक्ति में एक एकल पूर्णांक n होगा। अगली n पंक्तियों में नाम उपनाम के जोड़े होंगे।
प्रोग्राम को पहले प्रारंभिक सूची और फिर केवल नामों की सूची प्रिंट करनी चाहिए।
इनपुट
आउटपुट
3
Marshall Mathers
Peter Hernandez
Curtis Jackson
Marshall Mathers
Peter Hernandez
Curtis Jackson
Marshall
Peter
Curtis
संकेत
आप व्हाइटस्पेस पर स्ट्रिंग को विभाजित करने के बाद पहला तत्व प्राप्त करने के लिए .split()[0] का उपयोग कर सकते हैं।
आप लिस्ट कॉम्प्रिहेंशन के साथ प्रिंट भी कर सकते हैं:
l = ['hi', 'my', 'name', 'is']
[print(item) for item in l]