字典是一种可变的容器,用于存储键值对。字典中的数据是无序的,键必须是唯一的且不可变。
特点:
使用大括号
{}
定义,键值对用冒号:
分隔。数据是无序的。
键必须是不可变类型(如字符串、数字、元组),值可以是任意类型。
# 创建空字典
d1 = {}
# 创建包含键值对的字典
d2 = {"name": "Alice", "age": 25, "city": "New York"}
# 键可以是数字
d3 = {1: "one", 2: "two", 3: "three"}
# 键可以是元组
d4 = {(1, 2): "point"}
dict()
函数创建# 从列表创建字典
d5 = dict([("name", "Bob"), ("age", 30)])
# 从关键字参数创建字典
d6 = dict(name="Charlie", age=35)
dict.fromkeys()
快速创建字典dict.fromkeys()
可以快速创建一个具有相同默认值的字典。
keys = ["a", "b", "c"]
value = 0
d = dict.fromkeys(keys, value)
print(d) # 输出:{'a': 0, 'b': 0, 'c': 0}
d = {"name": "Alice", "age": 25}
# 添加新键值对
d["city"] = "New York"
# 修改现有键的值
d["age"] = 26
print(d) # 输出:{'name': 'Alice', 'age': 26, 'city': 'New York'}
可以通过键访问字典中的值。
d = {"name": "Alice", "age": 25}
# 访问键对应的值
print(d["name"]) # 输出:Alice
# 使用 get() 方法避免键不存在时报错
print(d.get("address", "Unknown")) # 输出:Unknown
可以使用 del
删除键值对,或使用 pop()
删除并返回值。
d = {"name": "Alice", "age": 25, "city": "New York"}
# 删除键值对
del d["city"]
print(d) # 输出:{'name': 'Alice', 'age': 25}
# 删除并返回值
age = d.pop("age")
print(age) # 输出:25
print(d) # 输出:{'name': 'Alice'}
in用于判断一个键是否存在于字典中,存在返回True, 否则返回False
d = dict(a=1, b=2) # d = {'a': 1, 'b': 2}
print('a' in d) # True
print(1 in d) # False
print('hello' not in d) # True
keys()
方法获取字典的所有键
values()
方法获取字典的所有值
items()
方法获取字典的所有键值对
d = {"name": "Alice", "age": 25, "city": "New York"}
# 遍历键
for key in d.keys():
print(key) # name age city
# 遍历值
for value in d.values():
print(value) # Alice 25 New York
# 遍历键值对
for key, value in d.items():
print(f"{key}: {value}") # name: Alice age: 25 city: New York
字典中的键必须是唯一的。如果重复定义键,后面的值会覆盖前面的值。
d = {"name": "Alice", "name": "Bob"}
print(d) # 输出:{'name': 'Bob'}
字典的键必须是不可变类型(如字符串、数字、元组),不能使用列表等可变类型作为键。
# 正确示例
d = {1: "one", "two": 2, (1, 2): "tuple"}
# 错误示例
d = {[1, 2]: "list"} # 报错:TypeError: unhashable type: 'list'
函数 | 描述 |
---|---|
len(d) |
计算字典元素个数,即键的总数。 |
str(d) |
输出字典,可以打印的字符串表示。 |
type(d) |
返回输入的变量类型,如果变量是字典就返回字典类型。 |
方法 | 描述 |
---|---|
d.clear() |
删除字典内所有元素。 |
d.copy() |
返回一个字典的浅复制。 |
d.get(k, default) |
返回键对应的值,若键不存在则返回默认值。 |
k in d |
判断键是否在字典中。 |
d.items() |
返回字典中所有键值对的视图。 |
d.keys() |
返回字典中所有键的视图。 |
d.update(d2) |
将其他字典的键值对更新到当前字典。 |
d.values() |
返回字典中所有值的视图。 |
d.pop(k) |
删除并返回指定键的值。 |