অনেক ক্ষেত্রে এটি একটি এক্সওয়াই সমস্যা হতে পারে । আপনি অবস্থানের দ্বারা আপনার অভিধান কীগুলি সূচী কেন করছেন? আপনার কি সত্যিই দরকার? সম্প্রতি অবধি, পাইথনে এমনকি অভিধানের অর্ডার দেওয়া হয়নি, সুতরাং প্রথম উপাদানটি অ্যাক্সেস করা ছিল নির্বিচারে।
আমি পাইথন 3 তে কিছু পাইথন 2 কোডটি অনুবাদ করেছি:
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):
যা ঠিক কাজ করে।
আমি বিশ্বাস করি যে অন্যান্য অনেক ক্ষেত্রে, অবস্থান অনুসারে অভিধান কীগুলি ইনডেক্স করা যায়। যদিও পাইথনে ৩.7-তে অভিধান অর্ডার করা হয়েছে তবে এর উপর নির্ভর করা খুব সুন্দর নয়। উপরের কোডটি কেবলমাত্র কাজ করে কারণ এর সামগ্রীগুলি some_list
সম্প্রতি প্রযোজ্য ছিল d
।
আপনার কোডটি যদি সত্যই disk_keys
সূচক অনুসারে কোনও উপাদান অ্যাক্সেস করার প্রয়োজন হয় তবে আপনার কড়া নজর দিন । সম্ভবত আপনার দরকার নেই।
dict.keys()
ভিউ অবজেক্টের মতো সেট দেয়, তালিকা নয় (সুতরাং, সূচীকরণ সম্ভব নয়)। ব্যবহারkeys = list(test)