l=[None,None]
कोई ऐसा फ़ंक्शन है जो जांचता है कि सूची एल में केवल कोई नहीं है या नहीं?कैसे जांचें कि सूची में केवल पाइथन
l=[None,None]
कोई ऐसा फ़ंक्शन है जो जांचता है कि सूची एल में केवल कोई नहीं है या नहीं?कैसे जांचें कि सूची में केवल पाइथन
तुम्हारा मतलब हैं, अगर सूची l
केवल कोई नहीं होता है की जांच करने के
if all(x is None for x in l):
...
"... केवल कोई नहीं है" या खाली है। – Constantin
@ सिस्टम: क्यों नहीं? – kennytm
@systempuntoout, यह वास्तव में जनरेटर अभिव्यक्ति है। – Constantin
any()
आज़माएं - यह जांच करता है कि सूची में कोई तत्व है जो True
को बुलियन संदर्भ में माना जाता है। None
एक बूलियन संदर्भ में False
का मूल्यांकन करता है, इसलिए any(l)
False
बन जाता है।
ध्यान दें कि, यह जांचने के लिए कि कोई सूची (और इसकी सामग्री नहीं) वास्तव में None
है, if l is None
का उपयोग किया जाना चाहिए। और if not l
यह जांचने के लिए कि क्या यह या तो कोई नहीं है (या कुछ और जिसे False
माना जाता है) या खाली है।
>>> कोई भी ([कोई नहीं, कोई नहीं, 0]) गलत –
देगा, मुझे किसी भी() 'की सुनवाई के बिना यह कैसे मिला? गजब का। – otocan
L == [None] * len(L)
ज्यादा का उपयोग कर की तुलना में तेजी है सब() जब एल है सब कोई नहीं
$ python -m timeit -s'L=[None]*1000' 'all(x is None for x in L)'
1000 loops, best of 3: 276 usec per loop
$ python -m timeit -s'L=[None]*1000' 'L==[None]*len(L)'
10000 loops, best of 3: 34.2 usec per loop
यदि आप जांचना चाहते हैं कि सूची के सदस्य कोई नहीं हैं, तो आप आइटम पर लूप कर सकते हैं और जांच सकते हैं कि वे कोई नहीं हैं
आप अगर सूची ही कोई नहीं है, तो आप प्रकार (varlist) का उपयोग कर सकते हैं और यह वापस आ जाएगी कोई नहीं
आप
अगर कर सकते हैं (lst == कोई नहीं) जांच करना चाहते हैं: ... प्रिंट "हां"
काम करता है।
मैं व्यक्तिगत रूप से एक set
बनाने और उसके बाद की पुष्टि करने के अगर यह एक तत्व None
के साथ एक सेट के बराबर है पसंद करते हैं:
set(l) == {None}
assert set([None, None, None]) == {None}
assert set([None, 2, None]) != {None}
नहीं सबसे तेजी से, लेकिन अभी भी तेजी से all(...)
कार्यान्वयन से:
$ python -m timeit -s'L=[None]*1000' 'all(x is None for x in L)'
10000 loops, best of 3: 59 usec per loop
$ python -m timeit -s'L=[None]*1000' 'set(L)=={None}'
100000 loops, best of 3: 17.7 usec per loop
$ python -m timeit -s'L=[None]*1000' 'L==[None]*len(L)'
100000 loops, best of 3: 7.17 usec per loop
बेंचमार्क कोड के लिए @JohnLaRooy को धन्यवाद –
क्या क्या यह खाली सूची '[] 'के लिए वापस आना चाहिए? – Constantin
संभावित डुप्लिकेट [कैसे जांचें कि सूची में सभी आइटम कोई नहीं हैं?] (Http://stackoverflow.com/questions/6518394/how-to-check-if-all-items-in-the-list-are -नोन) –
संभावित डुप्लिकेट [यह जांचने के लिए सबसे संक्षिप्त तरीका है कि कोई सूची खाली है या \ [कोई नहीं \]?] (http://stackoverflow.com/questions/1270920/most-concise-way-to-check-whether -a-list-is-blank-or-none) – ThiefMaster