字典是一种可变的、无序的键值对(key-value)集合。字典在许多编程(Java中的HashMap)任务中非常有用,因为它们允许快速查找、添加和删除元素。字典使用花括号 {} 表示。字典是可变类型。
语法:
变量 = {'key1': 'value1', 'key2': 'value2', 'keyn': 'valuen'}
# 空字典
变量 = {}
变量 = dict()
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1)
插入/修改数据
语法:
字典序列[key] = value # key不存在就插入数据。key存在就修改key的value。
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
dict1['id'] = 1
print(dict1) # {'name': 'Tom', 'age': 18, 'gender': '男', 'id': 1}
删除数据
- del() / del:删除字典或删除字典中指定的键值对。
语法:
del 字典序列[key] # del (字典序列)
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
del dict1['age']
print(dict1) # 删除键值对,打印 {'name': 'Tom', 'gender': '男'}
del dict1 # 删除对象
- clear():清空字典
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
dict1.clear()
print(dict1) # {}
查找数据
- key的方式查找:查找到数据,返回数据。没有查找到数据,报错 KeyError: 'key'
语法:
字典序列[key]
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1['name']) # Tom
- get():如果当前查找的key不存在则返回第⼆个参数(默认值),如果省略第⼆个参数,则返回None。
语法:
字典序列.get(key, 默认值)
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.get('name', "Jerry")) # Tom
- keys():获取字典所有的key,返回一个列表序列。
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
- values():获取字典所有的value,返回一个列表序列。
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.values()) # dict_values(['Tom', 18, '男'])
- items():获取字典所有的键值对。返回一个列表序列,列表中存放着键值对的元组。
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.items()) # dict_items([('name', 'Tom'), ('age', 18), ('gender', '男')])
循环遍历
- 遍历字典的key
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for key in dict1.keys():
print(key)
- 遍历字典的value
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for value in dict1.values():
print(value)
- 遍历字典的元素
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for item in dict1.items():
print(item)
- 遍历字典的键值对
示例:
dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for key, value in dict1.items():
print(f'key: {key}, value: {value}')