पायथन - सूची समझ
सूची समझ
जब आप किसी मौजूदा सूची के मूल्यों के आधार पर एक नई सूची बनाना चाहते हैं तो सूची समझ एक छोटा सिंटैक्स प्रदान करती है।
उदाहरण:
फलों की सूची के आधार पर, आप एक नई सूची चाहते हैं, जिसमें नाम में केवल "a" अक्षर वाले फल हों।
for
सूची समझ के बिना आपको एक सशर्त परीक्षण के साथ एक बयान लिखना होगा :
उदाहरण
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
सूची समझ के साथ आप कोड की केवल एक पंक्ति के साथ वह सब कर सकते हैं:
उदाहरण
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
वाक्य रचना
newlist = [expression for item in iterable if condition == True]
वापसी मूल्य एक नई सूची है, पुरानी सूची को अपरिवर्तित छोड़कर।
स्थिति
शर्त एक फिल्टर की तरह है जो केवल उन वस्तुओं को स्वीकार करती है जिनका मूल्य है
True
।
उदाहरण
केवल वे आइटम स्वीकार करें जो "सेब" नहीं हैं:
newlist = [x for x in fruits if x != "apple"]
शर्त
if x != "apple"
"सेब" के अलावा अन्य सभी तत्वों के लिए वापस आ जाएगा True
, जिससे नई सूची में "सेब" को छोड़कर सभी फल शामिल होंगे।
शर्त वैकल्पिक है और इसे छोड़ा जा सकता है :
उदाहरण
बिना किसी if
बयान के:
newlist = [x for x in fruits]
चलने योग्य
पुनरावर्तनीय कोई भी चलने योग्य वस्तु हो सकती है, जैसे सूची, टपल, सेट इत्यादि।
उदाहरण
आप range()
एक चलने योग्य बनाने के लिए फ़ंक्शन का उपयोग कर सकते हैं:
newlist = [x for x in range(10)]
वही उदाहरण, लेकिन एक शर्त के साथ:
उदाहरण
केवल 5 से कम संख्या स्वीकार करें:
newlist = [x for x in range(10) if x < 5]
अभिव्यक्ति
अभिव्यक्ति पुनरावृत्ति में वर्तमान आइटम है, लेकिन यह परिणाम भी है, जिसे आप नई सूची में सूची आइटम की तरह समाप्त होने से पहले हेरफेर कर सकते हैं:
उदाहरण
नई सूची में मानों को अपर केस में सेट करें:
newlist = [x.upper()
for x in fruits]
आप जो चाहें परिणाम सेट कर सकते हैं:
उदाहरण
नई सूची के सभी मानों को 'हैलो' पर सेट करें:
newlist = ['hello' for x in fruits]
अभिव्यक्ति में फ़िल्टर की तरह नहीं, बल्कि परिणाम में हेरफेर करने के तरीके के रूप में स्थितियां भी हो सकती हैं:
उदाहरण
"केला" के बजाय "नारंगी" लौटाएं:
newlist = [x if x != "banana" else "orange"
for x in fruits]
उपरोक्त उदाहरण में अभिव्यक्ति कहती है:
"वस्तु लौटा दें यदि यह केला नहीं है, यदि यह केला है तो नारंगी लौटाएं"।