2013-08-06 23 views
11

मान लीजिए मैं एक सूची हो सकता है कि या तो एक या दो तत्व हैं:चेक एक महत्वपूर्ण एक अजगर सूची में मौजूद है अगर

mylist=["important", "comment"] 

या

mylist=["important"] 

तो मैं काम करने के लिए एक चर करना चाहते हैं इस दूसरे मूल्य के आधार पर ध्वज के रूप में या नहीं।

यह जांचने का सबसे अच्छा तरीका क्या है कि दूसरा तत्व मौजूद है या नहीं?

मैंने पहले ही इसे len(mylist) का उपयोग करके किया है। यदि यह 2 है, तो यह ठीक है। यह काम करता है लेकिन मैं जानना चाहूंगा कि दूसरा क्षेत्र बिल्कुल "टिप्पणी" है या नहीं।

मैं तो इस समाधान के लिए आया था:

>>> try: 
...  c=a.index("comment") 
... except ValueError: 
...  print "no such value" 
... 
>>> if c: 
... print "yeah" 
... 
yeah 

लेकिन बहुत लंबा लग रहा है। क्या आपको लगता है कि इसे बेहतर किया जा सकता है? मुझे यकीन है कि यह Python Data Structures Documentation से उचित तरीके से खोजने का प्रबंधन नहीं कर सकता है।

उत्तर

7

के बारे में क्या:

len(mylist) == 2 and mylist[1] == "comment" 

उदाहरण के लिए:

'comment' in mylist 

या, यदि:

>>> mylist = ["important", "comment"] 
>>> c = len(mylist) == 2 and mylist[1] == "comment" 
>>> c 
True 
>>> 
>>> mylist = ["important"] 
>>> c = len(mylist) == 2 and mylist[1] == "comment" 
>>> c 
False 
6

उपयोग in ऑपरेटर:

>>> mylist=["important", "comment"] 
>>> "comment" in mylist 
True 

आह! जहां आपने कहा था, उस हिस्से को याद किया, आप केवल दूसरे तत्व होने के लिए "comment" चाहते हैं। उस के लिए आप का उपयोग कर सकते हैं:

len(mylist) == 2 and mylist[1] == "comment" 
23

आप in ऑपरेटर का उपयोग कर सकते हैं पीओ sition महत्वपूर्ण है, एक टुकड़ा का उपयोग करें: सूचियों कि आकार एक, दो या उससे अधिक समय हैं, और केवल True है के लिए

mylist[1:] == ['comment'] 

बाद काम करता है, तो सूची लंबाई 2 और दूसरा तत्व है 'comment' के बराबर है :

>>> test = lambda L: L[1:] == ['comment'] 
>>> test(['important']) 
False 
>>> test(['important', 'comment']) 
True 
>>> test(['important', 'comment', 'bar']) 
False 
संबंधित मुद्दे