我正在尝试动态更新字典
for I in range(0,4):
var = method(I) # var = "abc:def:ghi:1234"
[a,b,c,d]= var.split(':')
d = d.rstrip('\n')
rdict = {i:d}
rdict = rdict .update({i:d})
但是问题是如果我打印命令,那不是打印。我缺少一些基本步骤。请帮忙。
最佳答案
rdict.update
就地修改字典并返回None
。不要将该值分配回rdict
。
rdict = {}
for i in range(0,4):
var = "abc:def:ghi:1234"
[a,b,c,d]= var.split(':')
d = d.rstrip('\n')
rdict.update({i:d})
循环中的大多数代码都独立于
i
,并且可以移到循环外。实际上,创建rdict
的一种更惯用的方法是rdict = dict((i, var.split(':')[3]) for i in range(4))
要么
# Python 2.7 or later
rdict = {i: var.split(':')[3] for i in range(4)}
如果
var
依赖于i
,则rdict = {}
for i in range(4):
a, b, c, d = method(i)
d = d.rstrip('\n')
rdict[i] = d # More efficient than calling update
关于python - 如何在python中动态更新字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31857578/