字典dict
字典用{}或dict()来创建。
字典中的元素是以键值对(key-value)的形式存在的,键值对之间用逗号隔开,键和值以冒号隔开。其中键是不可重复的且不可变的。
创建字典
dict1 = {} dict2 = dict() dict3 = {'姓名': '张三', '年龄': 18, '性别': '男'} print(dict1) #{} print(dict2) #{} print(dict3) #{'姓名': '张三', '年龄': 18, '性别': '男'}
操作字典常用的方法:
(1)增加或修改数据
字典名[key]=value。通过键(key)往字典中添加数据,但如果key存在,则是修改key对应的值(value)。
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男'}
dict1['年龄'] = 20
print(dict1) #{'姓名': '张三', '年龄': 20, '性别': '男'}
dict1['爱好'] = '吃饭'
print(dict1) #{'姓名': '张三', '年龄': 18, '性别': '男', '爱好': '吃饭'}
update():将一个序列中的所有元素(集合中不存在的元素 )添加到集合中。传入的参数必须是一个序列。
set1 = {10}
print(set1) #{10}
set1.update([20])
print(set1) #{10, 20}
set1.update(['a', 10, 30])
print(set1) #{10, 20, 30, 'a'}
(2)删除数据
pop():删除字典中的指定key对应的键值对,如果key不存在则报错。
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男'}
dict1['爱好'] = '吃饭'
print(dict1) #{'姓名': '张三', '年龄': 18, '性别': '男', '爱好': '吃饭'}
dict1.pop('性别')
print(dict1) #{'姓名': '张三', '年龄': 18, '爱好': '吃饭'}
clear():清空字典的所有元素。
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男'}
dict1.clear()
print(dict1) #{}
也可以用del删除字典中的数据:
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男'}
dict1['爱好'] = '吃饭'
print(dict1) #{'姓名': '张三', '年龄': 18, '性别': '男', '爱好': '吃饭'}
del dict1['性别']
print(dict1) #{'姓名': '张三', '年龄': 18, '爱好': '吃饭'}
del dict1
print(dict1) #NameError: name 'dict1' is not defined
(3)查找数据
通常使用 dict1[key]的方式来查找值:
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男'}
print(dict1['姓名']) #张三
print(dict1['年龄']) #18
get(key) :通过key查找值。如果key不存在,则返回None。
get(key,默认值):通过key查找值。如果key存在,则返回对应的值,如果key不存在,则返回传入的默认值。
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
print(dict1.get('姓名')) #张三
print(dict1.get('身高')) #None
print(dict1.get('年龄', 22)) #18
print(dict1.get('身高', '180cm')) #180cm
keys():查找所有的key
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
print(dict1.keys()) #dict_keys(['姓名', '年龄', '性别', '地址'])
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
k = dict1.keys()print(type(k)) #<class 'dict_keys'>
print(k) #dict_keys(['姓名', '年龄', '性别', '地址'])
for data in k:
print(data) #输出所有的key
print(k[0]) #报错TypeError: 'dict_keys' object is not subscriptable
values():查找所有的值。类似keys()
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
print(dict1.values()) #dict_values(['张三', 18, '男', None])
items():查找所有的键值对,类似keys()
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
datas = dict1.items()
print(datas) #dict_items([('姓名', '张三'), ('年龄', 18), ('性别', '男'), ('地址', None)])
for k, v in datas:
print(k, v)
字典的遍历
(1)遍历key
直接for...in... 遍历
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
for k in dict1:
print(k)
通过keys() 遍历
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
for k in dict1.keys():
print(k)
(2)遍历value
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
for v in dict1.values():
print(v)
(3)遍历键值对
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
for data in dict1.items():
print(data)
# ('姓名', '张三')
# ('年龄', 18)
# ('性别', '男')
# ('地址', None)
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
for k, v in dict1.items():
print(k, v)
# 姓名 张三
# 年龄 18
# 性别 男
# 地址 None
dict1 = {'姓名': '张三', '年龄': 18, '性别': '男', '地址':None}
k = dict1.keys()
print(type(k)) #<class 'dict_keys'>
print(k) #dict_keys(['姓名', '年龄', '性别', '地址'])
for data in k:
print(data) #输出所有的key
print(k[0]) #报错TypeError: 'dict_keys' object is not subscriptable
浙公网安备 33010602011771号