[英]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.