繁体   English   中英

用 python 替换字典中的 None 值(1 个键,3 个值)

[英]replace None value in dictionary by python (1 key , 3 value)

我想用 python 在我的字典中用“NoString”替换“None”或“”(空字符串),我想了很多时间,但我无法完成它。

这是字典:

{
'Column0':['ID','Company','Name'],
'Column1':[293193,'Exist','Robort Car'],
'Column2':[None,None,""],
'Column3':[None,"Close",None],
'Column4':["",None,None]
}

也许我会使用,如果,请帮助我

您应该遍历可以替换它们的 dict 值:

myDict = {
'Column0':['ID','Company','Name'],
'Column1':[293193,'Exist','Robort Car'],
'Column2':[None,None,""],
'Column3':[None,"Close",None],
'Column4':["",None,None]
}

newDict = dict()
for key, value in myDict.items():
    newDict[key] = ["NoString" if s in [None, ""] else s for s in value ]

print(str(newDict).replace("],", "],\n"))

output:

{'Column0': ['ID', 'Company', 'Name'],
 'Column1': [293193, 'Exist', 'Robort Car'],
 'Column2': ['NoString', 'NoString', 'NoString'],
 'Column3': ['NoString', 'Close', 'NoString'],
 'Column4': ['NoString', 'NoString', 'NoString']}

我认为这里的关键是了解如何修改列表的值。 列表上的简单 for 循环不会修改/更新列表的值。 为此,必须使用 Enumerate,并按索引访问元素,才能成功修改值。 我还建议在我的实践中使用 isinstance,因为想象一个值不是一个列表,那么我不希望我的代码被破坏,并且使用 isinstance(... ,list) 每说。

这是一个更基本,易于理解的解决方案。

d = {
'Column0':['ID','Company','Name'],
'Column1':[293193,'Exist','Robort Car'],
'Column2':[None,None,""],
'Column3':[None,"Close",None],
'Column4':["",None,None]
}

print(d)

for k in d.keys():
    l = d[k]
    if isinstance(l,list):
        for idx, i in enumerate(l):
            if l[idx] is None:
                l[idx] = "NoString"

print(d)

和 output:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM