এই প্রশ্নের বহু উত্তর থাকা সত্ত্বেও খুব কম লোকই উপস্থিত রয়েছে, যেগুলি অভিধানের আন-অর্ডারযুক্ত ম্যাপিংগুলি নির্দেশ করে এবং তাই (পাইথন ৩.7 সহ সন্নিবেশকরণ আদেশের আশীর্বাদ না হওয়া পর্যন্ত) একটি অভিধানে আক্ষরিক অর্থে "প্রথম" প্রবেশের ধারণাটি কোন জ্ঞান নেই. এবং এমনকি কোনও OrderedDict
কেবলমাত্র অনাগত ব্যবসায়ের সাহায্যে অঙ্ক সূচক দ্বারা অ্যাক্সেস করা যেতে পারে mydict[mydict.keys()[0]]
(পাইথন 2 কেবলমাত্র পাইথন 3 keys()
এ একটি সাব-স্ক্রিপ্টযোগ্য পুনরুক্তিযোগ্য))
৩.7 থেকে এবং অনুমান অনুসারে ৩. as তেও - নতুন আচরণটি তখন প্রবর্তিত হয়েছিল, তবে ৩. until অবধি ভাষা নির্দিষ্টকরণের অংশ হিসাবে অন্তর্ভুক্ত হয়নি - একটি ডিকের কী, মান বা আইটেমগুলির উপর পুনরাবৃত্তি (এবং, আমি বিশ্বাস করি, একটি) এছাড়াও সেট করুন) প্রথমে সর্বনিম্ন-সন্নিবেশ করা বস্তুগুলি উত্পন্ন করবে। সন্নিবেশের সংখ্যাসূচক সূচক দ্বারা এগুলিতে অ্যাক্সেসের সহজ উপায় এখনও নেই।
আইটেমগুলি নির্বাচন এবং "ফর্ম্যাটিং" করার প্রশ্নে, অভিধানে আপনি কীটি পুনরুদ্ধার করতে চান তা যদি আপনি জানেন তবে আপনি সাধারণত পুনরুদ্ধারের জন্য কীটি সাবস্ক্রিপ্ট হিসাবে ব্যবহার করবেন ( my_var = mydict['Apple']
)।
আপনি যদি সত্যিই এন্ট্রি নম্বর দ্বারা আইটেমগুলি সূচী করতে সক্ষম হতে চান (সন্নিবেশগুলি তৈরি করার সাথে সাথে কোনও নির্দিষ্ট প্রবেশের নম্বরটি পরিবর্তিত হবে এই বিষয়টি উপেক্ষা করে) তবে উপযুক্ত কাঠামোটি সম্ভবত দ্বি-উপাদানগুলির তালিকার একটি তালিকা হবে। পরিবর্তে
mydict = {
'Apple': {'American':'16', 'Mexican':10, 'Chinese':5},
'Grapes':{'Arabian':'25','Indian':'20'} }
আপনি ব্যবহার করতে পারেন:
mylist = [
('Apple', {'American':'16', 'Mexican':10, 'Chinese':5}),
('Grapes', {'Arabian': '25', 'Indian': '20'}
]
এই শাসনের অধীনে প্রথম এন্ট্রিটি mylist[0]
ক্লাসিক তালিকা-শেষের আকারে রয়েছে এবং এর মান ('Apple', {'American':'16', 'Mexican':10, 'Chinese':5})
। আপনি নিম্নলিখিত হিসাবে পুরো তালিকাটি পুনরাবৃত্তি করতে পারে:
for (key, value) in mylist: # unpacks to avoid tuple indexing
if key == 'Apple':
if 'American' in value:
print(value['American'])
তবে যদি আপনি জানেন যে আপনি কী "অ্যাপল" কীটি সন্ধান করছেন, তবে আপনি কেন কেবল তার পরিবর্তে ডিক ব্যবহার করবেন না?
কীগুলির তালিকাকে ক্যাশে করে আপনি অতিরিক্ত স্তরের ইন্ডিয়ারেশন পরিচয় করিয়ে দিতে পারেন, তবে দুটি ডাটা স্ট্রাকচারকে সিঙ্ক্রোনাইজেশনে রাখার জটিলতাগুলি অবশ্যম্ভাবীভাবে আপনার কোডের জটিলতায় যোগ করবে।