我有两个字典,分别是items和u_items
items = {"A": 1, "B": 2, "C": 3}
u_items = {"D": 4, "B": 4, "E": 8, "C": 4}
我希望更新items字典,使用u_items实现,我这样做了:
items.update((k + '_1' if k in items else k, v) for k, v in u_items.items())
这样我就可以区分来自两个字典的键。
输出:
items = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'B_1': 4, 'E': 8, 'C_1': 4}
但是当我用另一个字典 n_items 更新 items 字典时,它会替换 B_1 的值,而不是让它变成 B_1_1。
n_items = {"C":7, "B":9}
items.update((k + '_1' if k in items else k, v) for k, v in n_items.items())
输出:
{'A': 1, 'B': 2, 'C': 3, 'D': 4, 'B_1': 9, 'E': 8, 'C_1': 7}
但是我希望输出结果是这样的:
{'A': 1, 'B': 2, 'C': 3, 'D': 4, 'B_1': 4, 'E': 8, 'C_1': 4, 'B_1_1':9,'C_1_1':7}
或者像这样:
{'A': 1, 'B': 2, 'C': 3, 'D': 4, 'B_1': 4, 'E': 8, 'C_1': 4, 'B_2':9,'C_2':7}
我该怎样做呢?
C_1
,C_2
,等等。无论如何,随着items
的增长,这将变得非常低效。不使用list
的原因是什么? - Chrisk + '_1' if k
一样检查 C_1 吗? - Rahul Sharmadefaultdict
并追加值。 - Mark