dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged = dict1 | dict2
print(merged)
merged = {**dict1, **dict2}
print(merged)
dict1.update(dict2)
print(dict1)دیکشنری (dict)
دیکشنریها یکی از قدرتمندترین و پرکاربردترین ساختمانهای داده در پایتون هستن. دیکشنریها مجموعهای از جفتهای کلید-مقدار هستند که با آکولاد {} تعریف میشن.
ویژگیهای کلیدی
| ویژگی | توضیح |
|---|---|
| کلیدها منحصربهفرد | هر کلید فقط یک بار میتونه در دیکشنری وجود داشته باشه |
| غیرمرتب (تا نسخه 3.6) | از پایتون 3.7 به بعد ترتیب درج حفظ میشه |
| قابل تغییر (Mutable) | میتونید بعد از ایجاد، مقادیر رو تغییر بدید یا جفتهای جدید اضافه کنید |
| کلیدها قابل هش (Hashable) | کلیدها باید از نوع غیرقابل تغییر باشن (مثل str, int, tuple) |
ایجاد دیکشنری
# روشهای مختلف ایجاد
my_dict1 = {"name": "Mohsen", "age": 32}
my_dict2 = dict(name="Mohsen", age=32)
my_dict3 = dict([("name", "Mohsen"), ("age", 32)])
my_dict4 = {} # دیکشنری خالیدسترسی به مقادیر
my_dict = {"name": "Mohsen", "age": 32}
name = my_dict["name"]
name = my_dict.get("name")
age = my_dict.get("city", "unknown")اضافه کردن و بهروزرسانی
my_dict = {"name": "Mohsen"}
my_dict["age"] = 32
my_dict["name"] = "Reza"
my_dict.update({"city": "Sari", "age": 25})حذف کردن
my_dict = {"name": "Mohsen", "age": 32, "city": "Sari"}
del my_dict["age"]
city = my_dict.pop("city")
item = my_dict.popitem()
my_dict.clear()کپی کردن دیکشنری
اگه فقط با = یه دیکشنری رو به متغیر دیگه نسبت بدید، هر دو متغیر به همون دیکشنری اشاره میکنن و تغییر تو یکی، اون یکی رو هم تغییر میده. برای کپی واقعی از copy() یا ماژول copy استفاده کنید.
import copy
original = {"name": "Mohsen", "scores": [10, 20]}
shallow1 = original.copy()
shallow2 = dict(original)
shallow1["name"] = "Reza"
print(original["name"])
shallow1["scores"].append(30)
print(original["scores"])
deep = copy.deepcopy(original)
deep["scores"].append(40)
print(original["scores"])Mohsen
[10, 20, 30]
[10, 20, 30]
نکته: وقتی مقادیر دیکشنری خودشون شامل ساختارهای قابل تغییر (مثل لیست یا دیکشنری دیگه) باشن، کپی سطحی کافی نیست و باید از
deepcopyاستفاده کنید.
ادغام دیکشنریها (Python 3.9+)
{'a': 1, 'b': 3, 'c': 4}
{'a': 1, 'b': 3, 'c': 4}
{'a': 1, 'b': 3, 'c': 4}