कई मामलों में, यह एक XY समस्या हो सकती है । आप अपनी शब्दकोश कुंजियों को स्थिति के अनुसार क्यों अनुक्रमित कर रहे हैं क्या आपको वास्तव में जरूरत है? हाल तक तक, पायथन में शब्दकोशों का भी आदेश नहीं दिया गया था, इसलिए पहले तत्व तक पहुंचना मनमाना था।
मैंने अभी कुछ पायथन 2 कोड का अनुवाद पायथन 3 में किया है:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
जो सुंदर नहीं है, लेकिन बहुत बुरा भी नहीं है। पहले, मैं इसे राक्षसी द्वारा प्रतिस्थापित करने वाला था
k = next(itertools.islice(iter(keys), i, None))
इससे पहले कि मुझे एहसास हुआ कि यह सब बहुत बेहतर लिखा गया है
for (k, res) in zip(d.keys(), some_list):
जो ठीक काम करता है।
मेरा मानना है कि कई अन्य मामलों में, स्थिति के आधार पर शब्दकोश कुंजी को अनुक्रमित करने से बचा जा सकता है। हालाँकि, Python 3.7 में शब्दकोशों का आदेश दिया गया है, उस पर निर्भर होना सुंदर नहीं है। उपरोक्त कोड केवल इसलिए काम करता है क्योंकि की सामग्री some_listहाल ही में सामग्री से उत्पादित की गई थी d।
यदि आपको वास्तव में disk_keysअनुक्रमणिका द्वारा किसी तत्व तक पहुंचने की आवश्यकता है, तो अपने कोड को देखें । शायद आप की जरूरत नहीं है
dict.keys()दृश्य ऑब्जेक्ट की तरह एक सेट लौटाता है, सूची नहीं (इसलिए, अनुक्रमण संभव नहीं है)। उपयोगkeys = list(test)