字典 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}

浙公网安备 33010602011771号