در این بخش نحوه افزودن عناصر جدید به فرهنگ لغت (نوع نوع دیکت) یا به روزرسانی مقدار عنصر موجود در پایتون توضیح داده شده است. همچنین می توان چندین فرهنگ لغت را بهم پیوست (پیوست ، ادغام کرد).
- با تعیین کلیدها ، عناصر را به فرهنگ لغت اضافه و به روز کنید.
- بهم پیوستن (ادغام) چندین فرهنگ لغت: بروزرسانی () ، | اپراتور ، | = اپراتور
- چند عنصر را اضافه یا به روز کنید: update ()، | = عملگر
با تعیین کلیدها ، عناصر را به فرهنگ لغت اضافه و به روز کنید.
می توانید عناصر فرهنگ لغت را به روش زیر اضافه یا به روز کنید.
شی واژه نامه [کلید] = ارزش
هنگامی که یک کلید موجود وجود ندارد ، یک عنصر جدید اضافه می شود و هنگامی که یک کلید موجود مشخص می شود ، مقدار موجود به روز می شود (رونویسی می شود).
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}
اگر نمی خواهید مقدار کلیدی را به روز کنید ، از روش () setdefault استفاده کنید.
چندین فرهنگ لغت را بهم پیوند دهید (ادغام کنید): update ()، | اپراتور ، | = اپراتور
update()
اگر شی dictionary دیکشنری دیگری به عنوان آرگومان به به روزرسانی متد شی فرهنگ نامه مشخص شود () ، تمام عناصر آن اضافه می شوند.
اگر کلید با یک کلید موجود همپوشانی داشته باشد ، با ارزش فرهنگ لغت مشخص شده در آرگومان رونویسی می شود.
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}
تعیین چندین فرهنگ لغت در آرگومان update () یک خطا است.
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}
همانند مثالهای قبلی ، با استفاده از update () شی) اصلی فرهنگ لغت را به روز می کنیم.
اگر می خواهید با ادغام چندین دیکشنری فرهنگ لغت جدیدی ایجاد کنید ، از {** d1، ** d2} (از پایتون 3.5) یا دیکتاتور (** d1 ، ** d2) استفاده کنید.
در پایتون 3.9 به بعد ، ایجاد فرهنگ لغت جدید با استفاده از | اپراتور بعدی توضیح داده شده است.
| اپراتور ، | = اپراتور (پایتون 3.9 و بالاتر)
از پایتون 3.9 ، امکان ادغام دو فرهنگ لغت با استفاده از | اپراتور. هنگامی که دو فرهنگ لغت یک کلید دارند ، مقدار سمت راست اولویت دارد.
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 ()، | = عملگر
update()
وقتی کلیدواژه key = مقدار در روش بروزرسانی () مشخص شود ، کلید و مقدار مقدار اضافه می شوند. اگر کلید با یک کلید موجود همپوشانی داشته باشد ، با مقدار مشخص شده در آرگومان رونویسی می شود.
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}
در ترکیب با تابع zip () ، عناصر را می توان از لیست کلیدها و لیستی از مقادیر اضافه کرد.
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}
| = عملگر (پایتون 3.9 و بالاتر)
با عملگر | = می توان لیستی از (کلید ، مقدار) را در سمت راست مشخص کرد.
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'