字典 dict

字典操作

字典存储的是键值对,类似 Java 中的 Map,key 不能重复(key 要是重复会被覆盖)

声明字典

dict1 = {}
dict2 = {"name": "Milk", "age": 20}
dict3 = dict([("name", "Milk"), ("age", 20)])
dict4 = dict(name = "Milk", age = 20)

常用操作

# 修改 key 对应的 valye
dict2["name"] = "Marry"

# 新增一个键值对(有就更新,没有就修改)
dict2["addr"] = "台湾省台中区"

# 根据 key 删除键值对(两种方式)
del dict2["addr"] 
dict2.pop("age") 

# 使用另一个字典来更新当前字段
d = {"a": 1}
d.update({"b": 2, "a": 4})
print(d)  # 输出 {'a': 4, 'b': 2}

# 删除并返回最后一项
d = {"a": 1, "b": 2}
key, value = d.popitem()  # key, value 接收弹出的键值对
print(key, value)  # 输出 b 2
print(d)           # 输出 {'a': 1}

# 根据 key 对应的 value
d = {"a": 1}
print(d["a"])  # 输出1。获取 a 的值
print(d.get("a"))  # 输出 1。获取 a 的值
print(d.get("b", 100))  # 输出 0。获取 b 的值,如果没有就返回 100

# 所有的 key
print(d.keys())  # 输出 dict_keys(['a'])。所有 key
for key in d.keys():  # 遍历 key
    print(key)

# 所有的 value
print(d.values())  # 输出 dict_values([1])。所有 value
for value in d.values():  # 遍历 value
    print(value)

# 所有的键值对
print(d.items())  # 输出 dict_items([('a', 1)])。所有键值对

for item in d.items():  # 遍历键值对
    print(item[0], item[1])
    
for key, value in d.items(): # 遍历键值对
    print(key, value)

# 判断 key 是否存在
print("a" in d)  # 输出 True。d 中是否有 a 这个 key

# 复制
d = {"a": 1}
d_copy = d.copy()
print(d_copy)  # 输出 {'a': 1}

# 合并(Python 3.9+)
d1 = {"a": 1}
d2 = {"b": 2, "a": 5}
merged = d1 | d2
print(merged)  # 输出 {'a': 5, 'b': 2}

# 获取 key 个数
d = {"a": 1, "b": 2}
print(len(d))  # 输出 2

# 如果 key 存在就返回对应的 value,不然就添加一个键值对(返回添加的键值对的 value)
d = {"a": 1}
value = d.setdefault("b", 2)
print(value)  # 输出 2
print(d)      # 输出 {'a': 1, 'b': 2}

# 创建指定 key 但不指定 value 的字典,所有的 value 默认为 None
d = dict.fromkeys(["name", "age"])
print(d)  # 输出 {'name': None, 'age': None}
posted @ 2025-03-08 20:32  CyrusHuang  阅读(6)  评论(0)    收藏  举报