吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1913|回复: 11
收起左侧

[求助] python如何向字典里循环添加值

[复制链接]
杨氏 发表于 2020-4-8 14:29
python如何向字典里循环添加值,如图,把这些默认值0用for循环的方式替换成score里面的值
1.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

GhostCN_Z 发表于 2020-4-8 14:39
我就想看看大家的回答
GhostCN_Z 发表于 2020-4-8 14:48
info = ('Kim', 'Kevin', 'Tom', 'Alice', 'Roger', 'Lucas', 'Kati')
score = [90, 81, 78, 66, 61, 88, 72]
dic={}
for i in range(len(info)):
    dic[info[i]]=score[i]
print(dic)
带色的小马甲 发表于 2020-4-8 14:53
本帖最后由 带色的小马甲 于 2020-4-8 14:54 编辑

[Python] 纯文本查看 复制代码
dict(map(lambda key,value:[key,value],info,score))

[Python] 纯文本查看 复制代码
dict(zip(info,score))
天黑我隐身 发表于 2020-4-8 15:01
前面几个朋友通过for循环来创建字典,我就不多提了

聊一聊怎么通过for循环来对已经存在的字典修改值

先说结论,在楼主描述的问题中字典很遗憾无法通过for循环来实现需求

这是因为字典的key是无序的(Python3.6+字典有序,但这只是实现细节不应该当做特性去依赖)
而对列表for循环结果value必然是有序的,所以无法实现一一对应

那如果我就要非用for循环来修改值怎么办,也可以
Python除了标准dict外还提供了有序字典OrderedDict,它直接继承了dict,使用方法和dict完全一样
[Python] 纯文本查看 复制代码
from collections import OrderedDict
qifeon 发表于 2020-4-8 15:01
>>>i=0
>>> for key in info_score:
        info_score[key]=score[i]
        i=i+1

       
>>> info_score
{'kim': 90, 'kevin': 80, 'tom': 70, 'alice': 60, 'roger': 88}
GhostCN_Z 发表于 2020-4-8 15:08

对,zip可以,我忘了给
xbang 发表于 2020-4-8 15:13
[Asm] 纯文本查看 复制代码
ii=0
for i in info:
    info_socre[i]=socre[ii]
    ii=ii+1
print(info_socre )
qifeon 发表于 2020-4-8 16:20
天黑我隐身 发表于 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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
wysyz 发表于 2020-4-8 16:25
虽然看不懂,还是顶一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 19:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表