>>> d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}
>>> 'one' in d.values()
True
जिज्ञासा से बाहर
, कुछ तुलनात्मक समय:
>>> T(lambda : 'one' in d.itervalues()).repeat()
[0.28107285499572754, 0.29107213020324707, 0.27941107749938965]
>>> T(lambda : 'one' in d.values()).repeat()
[0.38303399085998535, 0.37257885932922363, 0.37096405029296875]
>>> T(lambda : 'one' in d.viewvalues()).repeat()
[0.32004380226135254, 0.31716084480285645, 0.3171098232269287]
संपादित करें: और मामले आपको आश्चर्य में क्यों ... कारण यह है कि इसके बाद के संस्करण की प्रत्येक वस्तु के एक अलग प्रकार का रिटर्न है, या अच्छी तरह से देखने के संचालन के लिए उपयुक्त है जो हो सकता है नहीं किया जा सकता:
>>> type(d.viewvalues())
<type 'dict_values'>
>>> type(d.values())
<type 'list'>
>>> type(d.itervalues())
<type 'dictionary-valueiterator'>
EDIT2: अनुरोध के अनुसार टिप्पणी में ...
>>> T(lambda : 'four' in d.itervalues()).repeat()
[0.41178202629089355, 0.3959040641784668, 0.3970959186553955]
>>> T(lambda : 'four' in d.values()).repeat()
[0.4631338119506836, 0.43541407585144043, 0.4359898567199707]
>>> T(lambda : 'four' in d.viewvalues()).repeat()
[0.43414998054504395, 0.4213531017303467, 0.41684913635253906]
मेरे पास हाथ में कोई अजगर नहीं है, क्या आप 'एक' के बजाय 'चार' के साथ परीक्षण फिर से कर सकते हैं? – soulcheck
@ सोल्चेक - मेरा दूसरा संपादन देखें! : o – mac
यह सब के बाद necesarry नहीं था, जब तक कि बड़े नियम पर चलाने के लिए नहीं। मुझे लगता है कि मूल्यों में ओवरहेड() मूल्य को जीवित रखने के द्वारा मूल्य सूची और दृष्टिकोण() में प्रतिलिपि बनाकर होता है। – soulcheck