python如何向字典里循环添加值
python如何向字典里循环添加值,如图,把这些默认值0用for循环的方式替换成score里面的值 我就想看看大家的回答 info = ('Kim', 'Kevin', 'Tom', 'Alice', 'Roger', 'Lucas', 'Kati')score =
dic={}
for i in range(len(info)):
dic]=score
print(dic) 本帖最后由 带色的小马甲 于 2020-4-8 14:54 编辑
dict(map(lambda key,value:,info,score))
dict(zip(info,score)) 前面几个朋友通过for循环来创建字典,我就不多提了
聊一聊怎么通过for循环来对已经存在的字典修改值
先说结论,在楼主描述的问题中字典很遗憾无法通过for循环来实现需求
这是因为字典的key是无序的(Python3.6+字典有序,但这只是实现细节不应该当做特性去依赖)
而对列表for循环结果value必然是有序的,所以无法实现一一对应
那如果我就要非用for循环来修改值怎么办,也可以
Python除了标准dict外还提供了有序字典OrderedDict,它直接继承了dict,使用方法和dict完全一样
from collections import OrderedDict >>>i=0
>>> for key in info_score:
info_score=score
i=i+1
>>> info_score
{'kim': 90, 'kevin': 80, 'tom': 70, 'alice': 60, 'roger': 88} 带色的小马甲 发表于 2020-4-8 14:53
对,zip可以,我忘了给 ii=0
for i in info:
info_socre=socre
ii=ii+1
print(info_socre ) 天黑我隐身 发表于 2020-4-8 15:01
前面几个朋友通过for循环来创建字典,我就不多提了
聊一聊怎么通过for循环来对已经存在的字典修改值
https://www.zhihu.com/question/24306558
Python 3.6改写了dict的内部算法,因此3.6的dict是有序的,在此版本之前皆是无序(写答案当前最新版为3.6)可参考阅读PEP 468根据PEP 468,此项改进降低了dict的内存消耗大概20%-25%(对比Python 3.5)注意3.6的dict遵循的顺序是Key的插入顺序。也就是说需要用一定顺序插入才能获得排好的结果,否则依然需要sort。另外,同样是Hash表实现的set在3.6里也依然是无序状态,这个没改最后,低版本希望有序dict可以用collections.OrderedDict。这是早在2.7就实装了的容器。它同样是遵循插入顺序。
作者:知乎用户
链接:https://www.zhihu.com/question/24306558/answer/374075597
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 虽然看不懂,还是顶一下
页:
[1]
2