TIM*_*MEX 67 python dictionary
如果值为None,我想将其更改为""(空字符串).
我这样开始,但我忘了:
for k, v in mydict.items():
if v is None:
... right?
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 126
for k, v in mydict.iteritems():
if v is None:
mydict[k] = ''
Run Code Online (Sandbox Code Playgroud)
在更一般的情况下,例如,如果您要添加或删除密钥,更改正在循环的容器的结构可能不安全 - 因此使用items
循环独立列表副本可能是谨慎的 - 但是在给定的现有索引处分配不同的值不会产生任何问题,因此,在Python 2.any中,最好使用它iteritems
.
Pau*_*McG 14
你可以创建一个dict理解只有值为None的元素,然后更新回原始:
tmp = dict((k,"") for k,v in mydict.iteritems() if v is None)
mydict.update(tmp)
Run Code Online (Sandbox Code Playgroud)
更新 - 做了一些性能测试
好吧,在尝试了100到10,000个项目的序列,使用不同百分比的值时,Alex的解决方案的性能是全面的,大约是该解决方案的两倍.
理解通常更快,这具有mydict
在迭代期间不编辑的优点:
mydict = dict((k, v if v else '') for k, v in mydict.items())
Run Code Online (Sandbox Code Playgroud)