Skip to main content
 首页 » 编程设计

python之如何在python中动态更新字典

2025年05月04日41lexus

我正在尝试动态更新字典

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,它不会打印。我缺少一些基本步骤。请帮忙解决这个问题。

请您参考如下方法:

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