字典
可迭代对象的意思是指存储了元素的一个容器对象,且容器中的元素可以通过iter( )方法或getitem()方法访问。并不是指某种具体的数据类型。即所有可以被for,of遍历的。
一、字典的应用场景
字典的数据是以键值对的形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据顺序如何变化,只需要按照对应的键(key)的名字查找数据即可。
二、创建字典的语法
2.1 字典特点:
- 符号为大括号
- 数据以键值对形式出现
- 各个键值之间用逗号隔开
# 有数据字典
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
# 空字典,两种方法
dict2 = {}
dict3 = dict()
三、字典常见操作
3.1 增
写法:字典序列[key] = 值
如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
dict1['id'] = 110 #新增
dict1['name'] = 'Jack' #修改
print(dict1)
3.2删
- del()/del:删除字典或字典中指定的键值对
- .clear():清空字典
del dict1['name']
del(dict1)
dict1.clear()
3.3修改
写法:字典序列[key] = 值
如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
3.4查
3.4.1 key值查找
如果当前查找的key存在,则返回对应的值;不存在就报错
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
print(dict1['name']) #Jack
print(dict1['names']) #报错
3.4.2 get()
语法:字典序列.get(key, 默认值)
注意:如果当前查找的key不存在则返回第二个参数(即是默认值),如果省略第二个参数,则返回none
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
print(dict1.get('name')) #Jack
print(dict1.get('id', 110)) #110 返回第二个参数即默认值
print('id') #none
3.4.3 .keys
keys():查找字典中所有的key,返回可迭代对象
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
print(dict1.keys())
# dict_keys(['name', 'age', 'gender'])
3.4.5 .values
values():查找字典中所有的value,返回可迭代对象
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
print(dict1.values())
#dict_values(['Jack', '20', '男'])
3.4.6 .items
items():查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典中key对应的值。
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
print(dict1.items())
#dict_items([('name', 'Jack'), ('age', '20'), ('gender', '男')])
四、字典的循环遍历
4.1遍历字典的key
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
for key in dict1.keys():
print(key)
4.2遍历字典的value
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
for value in dict1.values():
print(value)
4.3遍历字典的元素
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
for item in dict1.items():
print(item) #打印出来的是数据是元组形式
4.4遍历字典的键值对
遍历键值对就是在遍历元素的基础上进行拆包
因为xx.items()返回的是可迭代对象,是有两个数据的元组形式,所以定义两个临时变量,第一个变量用来存放元组的第一个数据,第二个变量存放第二个数据。这个过程就是拆包
dict1 = {'name': 'Jack', 'age': '20', 'gender': '男'}
for key, value in dict1.items():
print(f'{key} = {value}')
# name = Jack
# age = 20
# gender = 男