Q1 - है निम्नलिखित एक generator expression
या एक set comprehension
के set()
? (या वे ही कर रहे हैं यदि हां, तो कर रहे हैं list
& dict
comprehensions भी इसी प्रकार के कलाकारों जनरेटर पर?)पाइथन सेट समझें कैसे काम करती हैं?
my_set = {x for x in range(10)}
Q2 - मूल्यांकन पर विचार डुप्लिकेट मानों & फिर उन्हें set()
लगाने से हटाने करता है?
dup_set = {x for x in [0, 1, 2, 0, 1, 2]}
समझ प्रदर्शन करता है (गति वार) नियमित for
छोरों की तुलना में बेहतर?
अद्यतन - मैं गति तुलना के लिए timeit
उपयोग करने की कोशिश। मुझे यकीन नहीं है कि अगर मैं हूं तो इसके बारे में (मेला)।
C:\>python -m timeit "s = set()" "for x in range(10):" "
s.add(x)"
100000 loops, best of 3: 2.3 usec per loop
C:\>python -m timeit "s = {x for x in range(10)}"
1000000 loops, best of 3: 1.68 usec per loop
अब, कुछ सशर्त,
का उपयोग करC:\>python -m timeit "s = set()" "for x in range(10):" "
if x%2: s.add(x)"
100000 loops, best of 3: 2.27 usec per loop
C:\>python -m timeit "s = {x for x in range(10) if x%2}"
1000000 loops, best of 3: 1.83 usec per loop
तो, वहाँ काफी कुछ अंतर है, है यह कार्यक्षमता c
में hardcoded किया जा रहा की वजह से है?
शायद आप टाइमिट (http://docs.python.org/2/library/timeit.html) का उपयोग कर सकते हैं या समय/गति अंतर – Totem