字典
概念
有序 (在 Python 3.7 及之后)可变 的键值对集合
- 键必须是唯一的,相同则覆盖
value
- 键必须是不可变类型:数字 、字符串、 元组
创建
python
# 使用花括号 {} 和冒号 :
my_dict1 = {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 使用 dict() 构造函数
my_dict2 = dict(name='Bob', age=25, city='London')
my_dict3 = dict([('name', 'Charlie'), ('age', 35), ('city', 'Paris')])
# zip 函数结合两个序列
keys = ['name', 'age', 'city']
values = ['Eve', 28, 'Tokyo']
my_dict5 = dict(zip(keys, values))
访问
[]
python
my_dict = {'name': 'Alice', 'age': 30}
print(f"姓名: {my_dict['name']}") # 姓名: Alice
print(f"年龄: {my_dict['age']}") # 年龄: 30
get
python
my_dict = {'name': 'Alice', 'age': 30}
print(f"城市 (get): {my_dict.get('city')}") # 输出 None
print(f"姓名 (get): {my_dict.get('name')}") # 输出 Alice
操作
修改
python
my_dict = {'name': 'Alice', 'age': 30}
# 修改现有键的值
my_dict['age'] = 31
print(f"修改年龄后: {my_dict}") # 输出 {'name': 'Alice', 'age': 31}
新增
python
my_dict = {'name': 'Alice', 'age': 30}
# 添加新的键值对
my_dict['city'] = 'New York'
print(f"添加城市后: {my_dict}") # 输出 {'name': 'Alice', 'age': 30, 'city': 'New York'}
删除
del dictionary[key]
:删除指定键值对
python
my_dict = {'name': 'Bob', 'age': 25, 'city': 'London', 'country': 'UK'}
# 使用 del 删除 'city'
del my_dict['city']
print(f"del 'city' 后: {my_dict}") # 输出 {'name': 'Bob', 'age': 25, 'country': 'UK'}
pop(key, default=None)
:删除指定键值对- **
popitem()
**删除最后一个- **
clear()
**清空
python
my_dict = {'name': 'Bob', 'age': 25, 'city': 'London', 'country': 'UK'}
# 使用 pop()
del my_dict['age']
print(my_dict) # {'name': 'Bob', 'city': 'London', 'country': 'UK'}
# 使用 popitem()
my_dict.popitem()
print(my_dict) # {'name': 'Bob', 'city': 'London'}
# 清空
my_dict.clear()
print(my_dict) # {}
视图
.keys()
: 返回包含所有键的视图对象。.values()
: 返回包含所有值的视图对象。.items()
: 返回包含所有键值对 (元组形式(key, value)
) 的视图对象。
python
my_dict = {'a': 1, 'b': 2, 'c': 3}
keys_view = my_dict.keys()
values_view = my_dict.values()
items_view = my_dict.items()
print(f"键视图: {keys_view}") # 输出 dict_keys(['a', 'b', 'c'])
print(f"值视图: {values_view}") # 输出 dict_values([1, 2, 3])
print(f"项视图: {items_view}") # 输出 dict_items([('a', 1), ('b', 2), ('c', 3)])
# 视图是动态的
my_dict['d'] = 4
print(f"\n字典修改后:")
print(f"键视图: {keys_view}") # 输出 dict_keys(['a', 'b', 'c', 'd'])
print(f"值视图: {values_view}") # 输出 dict_values([1, 2, 3, 4])
print(f"项视图: {items_view}") # 输出 dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
# 可以将视图转换为列表
key_list = list(keys_view)
print(f"\n键视图转列表: {key_list}") # 输出 ['a', 'b', 'c', 'd']