मैं देख रहा हूं कि लोग any
किसी अन्य सूची को इकट्ठा करने के लिए उपयोग कर रहे हैं यह देखने के लिए कि क्या कोई आइटम किसी सूची में मौजूद है, लेकिन क्या सिर्फ करने का एक त्वरित तरीका है ?:
if list.contains(myItem):
# do something
मैं देख रहा हूं कि लोग any
किसी अन्य सूची को इकट्ठा करने के लिए उपयोग कर रहे हैं यह देखने के लिए कि क्या कोई आइटम किसी सूची में मौजूद है, लेकिन क्या सिर्फ करने का एक त्वरित तरीका है ?:
if list.contains(myItem):
# do something
जवाबों:
आप इस सिंटैक्स का उपयोग कर सकते हैं:
if myItem in list:
# do something
इसके अलावा, उलटा ऑपरेटर:
if myItem not in list:
# do something
यह सूचियों, टुपल्स, सेट्स और डिक्ट्स (चेक कीज़) के लिए ठीक है।
ध्यान दें कि यह सूचियों और टुपल्स में एक ओ (एन) ऑपरेशन है, लेकिन सेट और डाइक में एक ओ (1) ऑपरेशन है।
o='--skip'; o in ("--skip-ias"); # returns True !
("--skip-ias")
टपल नहीं है, लेकिन एक स्ट्रिंग (कोष्ठक कुछ नहीं करते हैं, जैसे (1)
कि सिर्फ एक पूर्णांक है)। यदि आप 1-ट्यूपल चाहते हैं, तो आपको एकल आइटम के बाद अल्पविराम जोड़ने की आवश्यकता है: ("--skip-ias",)
(या (1,)
)।
दूसरे ने जो कहा है, इसके अलावा, आपको यह जानने में भी दिलचस्पी हो सकती है कि विधि in
को कॉल करने के लिए क्या है list.__contains__
, कि आप अपने द्वारा लिखे गए किसी भी वर्ग को परिभाषित कर सकते हैं और अपने पूर्ण सीमा पर अजगर का उपयोग करने के लिए बेहद आसान हो सकते हैं।
एक गूंगा उपयोग हो सकता है:
>>> class ContainsEverything:
def __init__(self):
return None
def __contains__(self, *elem, **k):
return True
>>> a = ContainsEverything()
>>> 3 in a
True
>>> a in a
True
>>> False in a
True
>>> False not in a
False
>>>
मैं हाल ही में इस एक लाइनर के साथ आया था कि True
अगर किसी सूची में किसी वस्तु के घटित होने की संख्या है, या False
यदि इसमें कोई घटना नहीं है या कुछ भी नहीं है। उपयोग करने next(...)
से यह डिफ़ॉल्ट रिटर्न मान ( False
) देता है और इसका मतलब है कि यह पूरी सूची समझ को चलाने की तुलना में काफी तेज चलना चाहिए।
list_does_contain = next((True for item in list_to_test if item == test_item), False)
any(item == test_item for item in list_to_test)
मुझे भी लगता है कि काम करेगा?
यदि आइटम मौजूद नहीं है, तो सूची विधि index
वापस आ जाएगी -1
और यदि यह मौजूद है, तो सूची में आइटम के सूचकांक को वापस कर देगा। वैकल्पिक रूप से एक if
बयान में आप निम्न कार्य कर सकते हैं:
if myItem in list:
#do things
आप यह भी देख सकते हैं कि क्या तत्व निम्नलिखित कथन के साथ सूची में नहीं है:
if myItem not in list:
#do things
index
विधि वापस नहीं करता है -1 अगर तत्व मौजूद नहीं है, यह एक फेंकता ValueError
अपवाद।