मेरे पास एक साधारण सूची है।स्थिति के साथ सूची समझ
>>> a = [0, 1, 2]
मैं सूची समझ का उपयोग करके इसकी एक नई सूची बनाना चाहता हूं।
>>> b = [x*2 for x in a]
>>> b
[0, 2, 4]
बहुत आसान है, लेकिन क्या होगा यदि मैं केवल nonzero तत्वों पर काम करना चाहता हूं?
'अगर' सूची की समझ में 'अन्य' की जरूरत है, तो मैं इसके साथ आया।
>>> b = [x*2 if x != 0 else None for x in a]
>>> b
[None, 2, 4]
लेकिन वांछनीय परिणाम है।
>>> b
[2, 4]
मैं क्या कर सकते हैं इस तरह से
>>> a = [0, 1, 2]
>>> def f(arg):
... for x in arg:
... if x != 0:
... yield x*2
...
>>> list(f(a))
[2, 4]
या 'फिल्टर' और एक लैम्ब्डा
>>> a = [0, 1, 2]
>>> list(filter(lambda x: x != 0, a))
[1, 2]
का उपयोग कर रहा एक सूची समझ का उपयोग करते हुए इस परिणाम कैसे प्राप्त कर सकता है?
[ <item_expression>
for <item_variables> in <iterator>
if <filtering_condition>
]
हम इसे पसंद का समाधान कर सकते हैं:
आप मेरे नायक हैं। =) – selurvedu