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"))
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)
您应该迭代dict值,以便替换它们:
输出:
我认为这里的关键是理解如何修改列表的值。列表上的简单for循环不会修改/更新列表的值。为此,必须使用Enumerate并通过索引访问元素,才能成功修改值。出于我的实践,我还建议使用isinstance,因为假设一个值不是列表,那么我不希望我的代码被破坏,并且通过使用isinstance(…,list)来保证代码的安全并不是那么困难
下面是一个更基本、更容易理解的解决方案
以及输出:
相关问题 更多 >
编程相关推荐