赞
踩
使用键-值(key-value)存储,具有极快的查找速度
key的特征:
思考:保存多为学生的姓名与成绩
如果用list
`[[“Tome”,93],[“Jack”,45]]
使用字典:学生姓名作为key,成绩作为值
dict1 = {"Tome":60,"lilei":70}
ps:字典可以只有key而没有value
获取
格式:字典名[key],以访问相应key对应的value。如果没有该key,则报错
print(dict1["lilei"]) #输出70
当我们不确定字典中是否存在某个key,而且还要获得其value,可以使用get()
常用
如果没有该key,不报错,返回None
print(dict1.get("sunck"))
print(dict1.get("sunck","1234")) #如果不存在sunck键,则返回1234,否则返回sunck的value
添加
dict1["hanmeimei"] = 99
更新
因为一个key对应一个value,所以,多次对一个key的value赋值,则为修改值
dict1["lilei"] = 89
删除
pop(key)
列表中也有pop,如果不指定参数,则删除最后的元素
dict1.pop("Tome")
del
删除单个元素
格式:del 字典名[key]
删除整个字典,删除后整个字典不存在
格式:del 字典名
clear
clear后字典为空,但是字典本身存在
格式:字典名.clear()
遍历
for key in dict1:
print(key,dict1[key]) #遍历的是字典里面的key
for value in dict1.values(): #遍历字典里面的value。dict.values是将dict字典里面的所有value以列表的形式返回
print(value)
for k,v in dict1.items(): #dict.items()是将字典里面的元素以元组的形式返回
print(k,v) #输出key以及对应的value
for i,k2 in enumerate(dict1):
print(i,k2) #i为key在字典里面的序号(从0开始),k2为键值
len()
返回字典中key-value对的个数
格式:len(字典名)
keys()
格式:字典名.keys()
获得字典所有的键,以列表的形式
info = {"name":"lisi","age":23}
if "name" in info.keys():
pass
values()
格式:字典名.values()
获取字典所有的值,以列表的形式
items()
格式:字典名.items()
以列表形式返回以元组形式存储的key-value键值对
my_dic={"name":laoli,"age":34}
for tmp in my_dic.items():
print(tmp)
print("key1:%s\tkey2:%s"%(tmp[0],tmp[1]))
copy
a = {"name":"zhang3","age":23,"children_ages":[11,22]}
b = a.copy()
print(a)
print(b)
a["children_ages"].append(33)
print(a)
print(b)
"""运行结果如下:
{'name': 'zhang3', 'age': 23, 'children_ages': [11, 22]}
{'name': 'zhang3', 'age': 23, 'children_ages': [11, 22]}
{'name': 'zhang3', 'age': 23, 'children_ages': [11, 22, 33]}
{'name': 'zhang3', 'age': 23, 'children_ages': [11, 22, 33]}
"""
字典中的value值并不在字典里面存着,而是存的引用,当.copy时,value是共用的
dict
list
#小练习
看substr在str中出现了多少次
#法一:count str.count(substr) #法二:字典 Word = input("请输入要查找的单词:\n) str = "sunck is a good man, sunck is a great man, sunck is a handsome man, sunck is a noble man" myDic = {} for i in str.split(" "): #以空格切割字符串,循环处理列表中的每个元素,再以元素当作key去字典中提取数据 v = myDic.get(i) #如果直接myDic[key],当字典中不存在值为key的键时,程序会报错,所以用get if v == None: #如果没有提取到,就以该元素作为key,1作为value,存进字典 myDic[i] = 1 else: myDic[i] += 1 #如果提取到了,则将对应的value+1 print(myDic[Word]) #再以该key去字典提取value
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。