这就是我所拥有的:
d1 = {"00f_5" :["AAA","AAC",3], 'oof_6': ["CCC",2,3]}
我想要:
d2 = {"00f_5" :["AAA","AAC",0], 'oof_6': ["CCC",0,0]}
d2 = {"00f_5" :["AAA","AAC",Ref], 'oof_6': ["CCC",Ref,Ref]}
我该怎么做?
答案 0 :(得分:3)
您可以通过词典理解来做到这一点:
d1 = {"00f_5" :["AAA","AAC",3], 'oof_6': ["CCC",2,3]}
out = {key: [value if not isinstance(value, int) else 0 for value in lst]
for key, lst in d1.items()}
print(out)
# {'00f_5': ['AAA', 'AAC', 0], 'oof_6': ['CCC', 0, 0]}
对于每个子列表,我们使用列表理解,如果不是int
,则保留该值,否则将其替换(此处为0,但您可以在此处放置字符串)。否则
答案 1 :(得分:1)
您可以使用字典和列表理解功能
{i:[x if type(x)!=int else 0 for x in d1[i]] for i in d1}
输出:
{'00f_5': ['AAA', 'AAC', 0], 'oof_6': ['CCC', 0, 0]}
简而言之,字典理解将遍历所有键,并将列表理解作为值插入。列表推导遍历原始项目(d1 [i])中的所有值,并将所有整数替换为0。您可以将其修改为所需的任何内容。
答案 2 :(得分:0)
这应该可以解决问题:
d1 = {"00f_5" :["AAA","AAC",3], 'oof_6': ["CCC",2,3]}
for key in d1:
for i in range(len(d1[key])):
if isinstance(d1[key][i], int):
d1[key][i] = 0