একটি লিস্ট থেকে ডিকশনারি তৈরি করার জন্য dict(), ইটারেশন এবং setdefault() মেথড ব্যবহার করা যেতে পারে। এই উদাহরণে প্রতিটি মানকে কি হিসেবে এবং এর পরের মানকে ভ্যালু হিসেবে ব্যবহার করা হয়েছে।
উদাহরণ
my_dict = {}
my_value_list = ['15', '14', '13', '12', '16']
print("মূল লিস্ট:", my_value_list)
my_value_list.sort()
print("সর্ট করা লিস্ট:", my_value_list)
for value in my_value_list:
val_int = int(value)
# val_int এবং val_int+1 কে কি হিসেবে ব্যবহার করে value অ্যাপেন্ড
my_dict.setdefault(val_int, []).append(value)
my_dict.setdefault(val_int + 1, []).append(value)
print("ফলাফল ডিকশনারি:")
print(my_dict)
আউটপুট
মূল লিস্ট: ['15', '14', '13', '12', '16']
সর্ট করা লিস্ট: ['12', '13', '14', '15', '16']
ফলাফল ডিকশনারি:
{12: ['12'], 13: ['12', '13'], 14: ['13', '14'], 15: ['14', '15'], 16: ['15', '16'], 17: ['16']}
ব্যাখ্যা
setdefault(key, [])— কি না থাকলে খালি লিস্ট তৈরি করে, থাকলে বিদ্যমান লিস্ট ফেরত দেয়- প্রতিটি মান
valueকে দুটি কি (valএবংval+1) এর অধীনে অ্যাপেন্ড করা হয়েছে - এটি একটি ওভারল্যাপিং ম্যাপিং তৈরি করে
সাধারণ ডিকশনারি তৈরির অন্যান্য পদ্ধতি
# ১. enumerate দিয়ে ইন্ডেক্স-ভ্যালু ম্যাপ
my_list = ['a', 'b', 'c']
d1 = {i: v for i, v in enumerate(my_list)}
# {0: 'a', 1: 'b', 2: 'c'}
# ২. জিপ দিয়ে দুটি লিস্ট থেকে
keys = ['a', 'b', 'c']
vals = [1, 2, 3]
d2 = dict(zip(keys, vals))
# {'a': 1, 'b': 2, 'c': 3}
# ৩. fromkeys দিয়ে ডিফল্ট ভ্যালু
d3 = dict.fromkeys(['a', 'b', 'c'], 0)
# {'a': 0, 'b': 0, 'c': 0}