একটি লিস্ট অফ টাপল অন্য একটি লিস্ট ব্যবহার করে আপডেট করতে 'defaultdict' ব্যবহার করা যায়।
Defaultdict হলো 'collections' মডিউলে থাকা ডিকশনারির মতো একটি কন্টেইনার। এটি 'dict' ক্লাসের একটি সাব-ক্লাস। এটি একটি ডিকশনারি-লাইক অবজেক্ট রিটার্ন করে। 'defaultdict' কখনো KeyError রেইজ করে না। এটি সেই কী-এর জন্য ডিফল্ট ভ্যালু প্রদান করে যা একজিস্ট করে না।
নিচে ডেমোстран্স্ট্রেশন দেওয়া হলো:
উদাহরণ
from collections import defaultdict
def merge_vals(list_1, list_2):
my_dict = defaultdict(list)
for i, j in list_1 + list_2:
my_dict[i].append(j)
return sorted([(i, max(j)) for i, j in my_dict.items()], key=lambda x: x[0])
my_list_1 = [('v', 1), ('q', 2), ('o', 0)]
my_list_2 = [('q', 5), ('o', 3)]
print("The first list of tuple is : ")
print(my_list_1)
print("The second list of tuple is : ")
print(my_list_2)
print("After merging, it becomes : ")
print(merge_vals(my_list_1, my_list_2))
আউটপুট
The first list of tuple is : [('v', 1), ('q', 2), ('o', 0)]
The second list of tuple is : [('q', 5), ('o', 3)]
After merging, it becomes : [('o', 3), ('q', 5), ('v', 1)]
ব্যাখ্যা
- প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করা হয়েছে।
- 'merge_vals' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা দুটি লিস্ট আর্গুমেন্ট হিসেবে নেয়। একটি defaultdict তৈরি করা হয়েছে।
- লিস্টগুলোতে এলিমেন্টগুলো ইটারেট করা হয়েছে, এবং প্রথম লিস্টের এলিমেন্টকে ইনডেক্স হিসেবে নেওয়া হয়েছে, এবং দ্বিতীয় লিস্টের এলিমেন্ট ডিকশনারিতে অ্যাপেন্ড করা হয়েছে।
- এই ডিকশনারি সর্ট করা হয়েছে এবং রিটার্ন করা হয়েছে।
- দুটি টাপলের লিস্ট তৈরি করা হয়েছে, এবং কনসোলে ডিসপ্লে করা হয়েছে।
- 'merge_vals' মেথডটি এই দুটি টাপলের লিস্ট পাস করে কল করা হয়েছে।
- এটি আউটপুট হিসেবে কনসোলে ডিসপ্লে করা হয়েছে।