字典
字典无序
字典用{}定义
存放的是键值对(键:索引,值:数据)
多个键值对之间用“,”号分割
键值对内部,键和值之间用“:”号分割
键是唯一的
字典是一个无序的数据集合,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的
#字典的key不能是可修改数据类型,
#例如列表就不能当字典的key
#value可以是任意的数据类型
#a={[1,]:"张三",'age':19}列表不可以
字典操作
增加操作
变量名[key]=value 格式
a={'name':"张三",'age':19}
#没有的添加
a["score"]=99
print(a)#{'name': '张三', 'age': 19, 'score': 99}
#有的修改
a["age"]=33
print(a)#{'name': '张三', 'age': 33, 'score': 99}
setDeafault()方法
#setDeafault()方法
a={'name':"张三",'age':19}
#其中存在的不覆盖
a.setdefault('age',20)
print(a)#{'name': '张三', 'age': 19}
#不存在的添加
a.setdefault("height",100)
print(a)#{'name': '张三', 'age': 19, 'height': 100}
删除操作
pop
#弹出,返回并删除指定键对应的值
b=a.pop("name")
print(b)# 张三 b是a对应的value
print(a)#{'age': 19, 'height': 100}
popitem
a={'name': '张三', 'age': 19, 'height': 100}
b=a.popitem()#b是a对应的value
print(b)# ('height', 100) 以元组形式弹出随机的一个
print(a)#{'name': '张三', 'age': 19}
clear
#清空字典,注意它和del的不同,del是整个全删了
a={'name': '张三', 'age': 19, 'height': 100}
a.clear()
print(a)# {} 空了
del
# del
a = {'name': '张三', 'age': 19, 'height': 100}
del a['age']
print(a) # {'name': '张三', 'height': 100}
del a # 这个删的彻底,整个都删了
修改操作
update()
# update()
a = {'name': "张三", 'age': 19}
b = {'name': "李四", "score": 89}
a.update(b) # 没有的key添加,相同的覆盖
print(a) # {'name': '李四', 'age': 19, 'score': 89}
变量名[key]=value 格式
a={'name':"张三",'age':19}
#没有的添加
a["score"]=99
print(a)#{'name': '张三', 'age': 19, 'score': 99}
#有的修改
a["age"]=33
print(a)#{'name': '张三', 'age': 33, 'score': 99}
查询操作
keys
# 获取键
a = {'name': '张三', 'age': 19, 'height': 100}
print(a.keys())#dict_keys(['name', 'age', 'height'])列表
for k in a.keys():
print(k)
values
a = {'name': '张三', 'age': 19, 'height': 100}
print(a.values())#dict_values(['张三', 19, 100])
for k in a.values():
print(k)
items
#items返回字典值呈元组形式的格式
a = {'name': "张三", 'age': 19}
print(a.items()) # 列表里面有元组
for kv in a.items():
print(kv)
for k, v in a.items():
print(k, v)
len()方法
统计键值对数量
a = {'name': '张三', 'age': 19, 'height': 100}
#1.统计键值对数量
print(len(a))
扩展
1.c字典和b相同
#1.c字典和b相同
#法一:
a={'name':"张三",'age':19}
b=[]
c={}
for k,v in a.items():
b.append((k,v))
for x in b:
c[x[0]]=x[1]
print(c)
#法二:
a={'name':"张三",'age':19}
b=[]
c={}
for k,v in a.items():
b.append((k,v))
for x,y in b:
c[x]=y
print(c)
2.把两层字典用下面形式输出
a = {
'001': {'name': "张三", 'age': 19},
'002': {'name': "lisi", 'age': 19},
'003': {'name': "wangwu", 'age': 19},
}
# 法一:
for k, v in a.items():
print("num:", k, end=",")
for k1, v1 in v.items():
print(k1, ":", v1, end=',')
print()
# 法二:
for k in a.keys():
print("num", k, end=",")
for k1 in a[k].keys():
print(k1, ":", a[k][k1], end=",")
print()
3.增加张三工资为1000
a={
'001':{'name':"张三",'age':19},
'002':{'name':"lisi",'age':19},
'003':{'name':"wangwu",'age':19},
}
for k in a.keys():
if a[k]["name"]=="张三":
a[k]["salary"]=1000
print(a)#{'001': {'name': '张三', 'age': 19, 'salary': 1000}, '002': {'name': 'lisi', 'age': 19}, '003': {'name': 'wangwu', 'age': 19}}
for k,v in a.items():
print(k,v)