এই বিভাগটি ব্যাখ্যা করে যে কীভাবে একটি অভিধানে নতুন উপাদান যুক্ত করতে হবে (ডিক্ট টাইপ অবজেক্ট) বা পাইথনের কোনও বিদ্যমান উপাদানের মান আপডেট করতে। একাধিক অভিধানকে একত্রিত করা (যোগ দেওয়া, একত্রীকরণ) করাও সম্ভব।
- কীগুলি নির্দিষ্ট করে অভিধানে উপাদানগুলিকে যুক্ত এবং আপডেট করুন।
- একাধিক অভিধানের সংমিশ্রণ (মার্জিং): আপডেট (), | অপারেটর, | অপারেটর
- একাধিক উপাদান যুক্ত বা আপডেট করুন: আপডেট (), | = অপারেটর
কীগুলি নির্দিষ্ট করে অভিধানে উপাদানগুলিকে যুক্ত এবং আপডেট করুন।
আপনি নিম্নলিখিত উপায়ে অভিধানের উপাদানগুলি যুক্ত / আপডেট করতে পারেন।
অভিধান অবজেক্ট [কী] = মান
যখন অস্তিত্বের কীটি নির্দিষ্ট করা থাকে তখন একটি নতুন উপাদান যুক্ত করা হয় এবং যখন একটি বিদ্যমান কী নির্দিষ্ট করা থাকে তখন বিদ্যমান মান আপডেট করা হয় (ওভাররাইট করা)।
d = {'k1': 1, 'k2': 2}
d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}
আপনি যদি উপস্থিত কোনও কীটির মান আপডেট করতে না চান তবে সেটডেফল্ট () পদ্ধতিটি ব্যবহার করুন।
একচেটিয়া (একত্রীকরণ) একাধিক অভিধান: আপডেট (), | অপারেটর, | অপারেটর
update()
অভিধানের বস্তুর পদ্ধতির আপডেটের () আপডেটের জন্য যদি আর একটি অভিধানের অবজেক্ট আর্গুমেন্ট হিসাবে নির্দিষ্ট করা থাকে, তবে এর সমস্ত উপাদান যুক্ত করা হবে।
কীটি যদি কোনও বিদ্যমান কী দিয়ে ওভারল্যাপ হয় তবে এটি আর্গুমেন্টে বর্ণিত অভিধানের মান দিয়ে ওভাররাইট করা হবে।
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
আপডেট () যুক্তিতে একাধিক অভিধান নির্দিষ্ট করা ত্রুটি।
d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}
# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2
পরে বর্ণিত হিসাবে আপডেট () কীওয়ার্ড আর্গুমেন্ট (কী = মান) হিসাবে নতুন উপাদান যুক্ত করতে পারে, তাই কেবল অভিধানে ** যুক্ত করুন এবং প্রতিটি উপাদানকে কীওয়ার্ড আর্গুমেন্ট হিসাবে প্রসারিত করুন এবং এটি পাস করুন।
d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
পূর্ববর্তী উদাহরণগুলির মতো, আপডেট () ব্যবহার করে মূল অভিধান অবজেক্টটি আপডেট হবে।
আপনি যদি একাধিক অভিধান একত্রিত করে একটি নতুন অভিধান তৈরি করতে চান তবে {** ডি 1, ** ডি 2} (পাইথন 3.5 থেকে) বা ডিক (** ডি 1, ** ডি 2) ব্যবহার করুন।
পাইথন ৩.৯ এবং তার পরে, | ব্যবহার করে একটি নতুন অভিধান তৈরি করাও সম্ভব অপারেটর পরবর্তী বর্ণিত।
| অপারেটর, | অপারেটর (পাইথন ৩.৯ এবং তারপরে)
পাইথন ৩.৯ থেকে, | ব্যবহার করে দুটি অভিধান একত্রিত করা সম্ভব অপারেটর. যখন দুটি অভিধানের একই কী থাকে, ডান দিকের মানটির অগ্রাধিকার থাকে।
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
print(d1 | d2)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
print(d2 | d1)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}
| একাধিক অপারেটর ব্যবহার করে একাধিক অভিধান একত্রিত করাও সম্ভব।
d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}
print(d1 | d2 | d3)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
আপডেট () হিসাবে, বাম দিকের অবজেক্টটি আপডেট হয়।
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
একাধিক উপাদান যুক্ত বা আপডেট করুন: আপডেট (), | = অপারেটর
update()
আপডেট () পদ্ধতিতে কীওয়ার্ড আর্গুমেন্ট কী = মান নির্দিষ্ট করা হলে, কী কী এবং মান মান যুক্ত করা হবে। কীটি যদি কোনও বিদ্যমান কী দিয়ে ওভারল্যাপ হয় তবে এটি আর্গুমেন্টে নির্দিষ্ট মানের সাথে ওভাররাইট করা হবে।
d = {'k1': 1, 'k2': 2}
d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
আপডেট () পদ্ধতির যুক্তি হিসাবে (কী, মান) একটি তালিকা নির্দিষ্ট করাও সম্ভব। কীটি যদি কোনও বিদ্যমান কী দিয়ে ওভারল্যাপ হয় তবে এটি আর্গুমেন্ট হিসাবে নির্দিষ্ট মানের সাথে ওভাররাইট করা হবে।
d = {'k1': 1, 'k2': 2}
d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
জিপ () ফাংশনের সাথে একত্রে কীগুলির একটি তালিকা এবং মানগুলির তালিকা থেকে উপাদানগুলি যুক্ত করা যায়।
d = {'k1': 1, 'k2': 2}
keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]
d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
| = অপারেটর (পাইথন ৩.৯ এবং তারপরে)
| = অপারেটরের সাহায্যে ডান পাশের (কী, মান) একটি তালিকা নির্দিষ্ট করা যেতে পারে।
d = {'k1': 1, 'k2': 2}
d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
নোট করুন | এর সাথে একটি তালিকা উল্লেখ করে অপারেটর একটি ত্রুটি ঘটবে। কেবল অভিধান থেকে অভিধান অপারেশনগুলি সমর্থিত।
# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'