您好,登录后才能下订单哦!
这篇文章主要介绍python中的字典有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值**(key-value)**存储,具有极快的查找速度。
举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:
names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85]
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。
如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} d['Michael'] #输出 95
如果定义时KEY重复,默认后面覆盖前面
i = {"苹果":50,"葡萄":30,"苹果":40} print(i) #输出 {'苹果': 40, '葡萄': 30}
方法:dict['new_key']=new_value
a={'Michael': 95, 'Bob': 75, 'Tracy': 85} a['lee']=100 print(a) #输出 {'Michael': 95, 'Bob': 75, ''lee':100,Tracy': 85}
注意字典里面内容是无序的,所以生成a['lee']的位置是随机的
对字典里面元素进行修改
方法:直接修改value 的值即可修改,多次对一个key放入value,后面的值会把前面的值冲掉:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} d['bob']=100 print(d) #输出{'Michael': 95, 'Bob': 100, 'Tracy': 85}
如果key不存在,Dict就会报错
>>> d['Thomas'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Thomas'
方法1:
a={"name":"lee","job":"it","sex":"man"} for i in a: print( i,a[i]) #效率高 #输出 job it #name lee #sex man
方法2:
for i,n in a.items(): #效率低 print(i,n) #输出内容和方法1相同,但方法1效率更高,因为a.items() 先要转换成字典列表对象 print(a.items()) #输出内容为 [('name','lee'),('job','it'),('sex','man')]
dict字典的一些方法: 可以用Python3.5 自带命令查找方法列表和方法的用法
a={'name',"lee"} dir(a)
得到结果
#用法 ,注意后面不用加() help(a.get)
得到结果
配合 内置函数zip()使用
zip():将用于可迭代的对象当成作为参数,将对象中的元素打包成一个元组,然后返回由这些元组组成的列表
方法1:循环法
{ i:j for i,j in zip(keys,values)}
items = ['苹果',"梨子","香蕉"] prices = [5,3,4] print(zip(items,prices)) print(type(zip(items,prices))) #下面的 item price 是自定义变量,可随意替换 如i,j dict1 = {item:price for item,price in zip(items,prices)} print(dict1) #输出 {'苹果': 5, '梨子': 3, '香蕉': 4} <zip object at 0x000002AEA57A5540> <class 'zip'>
方法2:dict(zip(keys,values))
用dict 方法转换 ,代码少
items = ['苹果',"梨子","香蕉"] prices = [5,3,4] dict2 = dict(zip(items,prices)) print(dict2) #输出 {'苹果': 5, '梨子': 3, '香蕉': 4}
以上是“python中的字典有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。