अद्यतन: पायथन 3.7 के रूप में, प्रविष्टि क्रम बनाए रखा जाता है, इसलिए आपको OrderedDictयहां की आवश्यकता नहीं है। आप एक सामान्य के साथ नीचे के दृष्टिकोण का उपयोग कर सकते हैंdict
संस्करण 3.7 में परिवर्तित: शब्दकोश आदेश प्रविष्टि आदेश होने की गारंटी है। यह व्यवहार 3.6 से CPython का कार्यान्वयन विवरण था।
स्रोत
अजगर 3.6 और पहले *
यदि आप एक नियमित के बारे में बात कर रहे हैं dict, तो "पहली कुंजी" का कोई मतलब नहीं है। चाबियाँ किसी भी तरह से आप पर निर्भर कर सकते हैं आदेश नहीं हैं। यदि आप अपने ऊपर पुनरावृत्ति करते dictहैं, तो संभवतः आपको "banana"वह पहली चीज़ नहीं मिलेगी जो आप देखते हैं।
यदि आपको चीजों को क्रम में रखने की आवश्यकता है, तो आपको एक का उपयोग करना होगा, OrderedDictन कि केवल एक सादे शब्दकोश।
import collections
prices = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
आप तो सभी कुंजियों देखना चाहता था तो क्रम में आप के माध्यम से यह पुनरावृत्ति कर ऐसा कर सकता है
for k in prices:
print(k)
आप वैकल्पिक रूप से सभी कुंजियों को एक सूची में रख सकते हैं और फिर उसी के साथ काम कर सकते हैं
ks = list(prices)
print(ks[0]) # will print "banana"
सूची बनाने के बिना पहला तत्व प्राप्त करने का एक तेज़ तरीका nextइट्रेटर पर कॉल करना होगा । nthहालांकि तत्व प्राप्त करने की कोशिश करते समय यह अच्छी तरह से सामान्य नहीं करता है
>>> next(iter(prices))
'banana'
* सीपीथॉन ने 3.6 में कार्यान्वयन विवरण के रूप में सम्मिलन आदेश की गारंटी दी थी।