2011-08-19 21 views
9

क्या एक शब्दकोश में कुंजी के लिए जाँच करने का एक शॉर्टेंड तरीका है?पायथन में एकाधिक 'इन' ऑपरेटरों?

कुछ है कि मैं बजाय कई in और and ऑपरेटरों का उपयोग करने का उपयोग कर सकते हैं - निम्नलिखित के बजाय:

('somekey' in d) and ('someotherkey' in d) and ('somekeyggg' in d) 
+0

इसमें क्या गलत है? यह बहुत स्पष्ट और सुरुचिपूर्ण लग रहा है। –

+0

अगर आपको 8 या 9 कुंजी के लिए ऐसा करना है तो यह परेशान हो जाता है। –

+0

फिर उदाहरण के रूप में दिखाने पर विचार करें। तीन मुख्य संस्करण खराब नहीं है, और कोई वास्तविक समस्या प्रदर्शित नहीं करता है। –

उत्तर

24
all(word in d for word in [ 'somekey', 'someotherkey', 'somekeyggg' ]) 
+1

+1 सूची पहले से बनाई जा सकती है और यहां तक ​​कि फिर भी उपयोग की जा सकती है। –

+3

@Gareth: आपने उस विभाजन को क्यों जोड़ा? – recursive

+1

@reno नाइट्स लेने के लिए खेद है, लेकिन मेरा मानना ​​है कि यह एक [जेनरेटर] होगा (http://www.python.org/dev/peps/pep-0289/) [अभिव्यक्ति] (http: //docs.python। org/संदर्भ/expressions.html # जनरेटर-भाव)। – Marty

5
set(['somekey', 'someotherkey', 'somekeyggg']).issubset(d) 
संबंधित मुद्दे