2012-08-31 17 views
6

कहें कि सभी डब्ल्यू, एक्स, वाई, और जेड सूची ए में हो सकते हैं। क्या यह जांचने के लिए एक शॉर्टकट है कि इसमें केवल x - उदाहरण के लिए है। अन्य चर को अस्वीकार किए बिना?जांचें कि सूची में केवल आइटम x

डब्ल्यू, एक्स, वाई, और जेड सभी एकल मान हैं (सूचियां, tuples, आदि नहीं)।

+0

क्या डब्ल्यू, एक्स, वाई और जेड सभी सिंगल वैल्यू या सूचियां हैं? –

+0

@SteveMayne सभी एकल मूल्य। – idlackage

+1

बस "सभी एकल मूल्यों" से स्पष्ट होने के लिए, क्या आपका मतलब 'int' और 'float' और' str'ings जैसी चीजें हैं, या (उदा।)' Y' 'सूची' हो सकती है? – DSM

उत्तर

4

यह जाँच करता है कि A में सभी element रों किसी अन्य चर के संदर्भ के बिना x के बराबर हैं:

all(element==x for element in A) 
+0

मुझे लगता है कि इसमें एकाधिक एक्स के –

2

सूची में सभी आइटम hashable हैं:

set(A) == set([x]) 
+0

शामिल हो सकते हैं, यह थोड़ा अक्षम है क्योंकि आपको – Claudiu

+0

Yep के बाद 'ए' के माध्यम से बस फिर से चालू करने के बजाय सेट की गणना करना है। बस अधिक कॉम्पैक्ट। –

+0

नए संस्करणों में आप '{x}' चीनी का उपयोग कर सकते हैं। – sdcvvc

0

मैं मुझे यकीन नहीं है कि अन्य चरों को अस्वीकार किए बिना का अर्थ है, लेकिन मुझे संदेह है कि यह वही है जो आप चाहते हैं चींटी:

if all(item == x for item in myList): 
    #do stuff 
2
{x} == {w,x,y,z} & set(A) 

यह अगर A में [w,x,y,z] के सभी और आइटम hashable हैं काम करेंगे।

0

यहाँ एक और तरीका:

>>> [x] * 4 == [x,w,z,y] 
कई की

पहले ही कहा गया।

0

इस सवाल का दो व्याख्याएं हैं:

पहले, में निहित एक्स का मान है [डब्ल्यू, y, z]:

>>> w,x,y,z=1,2,3,2 
>>> any(x == v for v in [w,y,z]) 
True 
>>> w,x,y,z=1,2,3,4 
>>> any(x == v for v in [w,y,z]) 
False 

या यह अर्थ हो सकता है कि वे एक ही वस्तु का प्रतिनिधित्व :

>>> w,x,y,z=1,2,3,4 
>>> any(x is v for v in [w,y,z]) 
False 
>>> w,x,y,z=1,2,3,x 
>>> any(x is v for v in [w,y,z]) 
True 
10

यही कारण है, या आप एक पाश से निपटने के लिए नहीं करना चाहते हैं:

>>> a = [w,x,y,z] 
>>> a.count(x) == len(a) 
+0

मुझे इस विधि को स्वीकार किए गए उत्तर से 5 गुना तेज पाया गया। –

संबंधित मुद्दे