字典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
posted on 2023-04-01 19:51  木去  阅读(97)  评论(0)    收藏  举报