我有以下字典:
{'Atlanta': [['Bear', 34274], ['Deer', 13747], ['Bee', 83743]],
'New York': [['Bear', 987], ['Dove', 2635]]}
具有列表值的键,该值包含带有成对的动物和数字的列表。
现在,我希望如果其中一个键中存在Animal,那么我希望所有其他键中都包含Animal,但要用零而不是数字,因此字典应如下所示:
{'Atlanta': [['Bear', 34274], ['Deer', 13747], ['Bee', 83743], ['Dove', 0]],
'New York': [['Bear', 987], ['Dove', 2635], ['Deer', 0], ['Bee', 0]]}
我不知道该怎么做。有人能帮我吗?
最佳答案
首先查找所有动物名称:
d = {'Atlanta': [['Bear', 34274], ['Deer', 13747], ['Bee', 83743]],
'New York': [['Bear', 987], ['Dove', 2635]]}
>>> animals = {animal for value in d.values() for animal, _ in value}
>>> animals
{'Bear', 'Bee', 'Deer', 'Dove'}
并用零填充丢失的那些:
for key, value in d.items():
selected_animals = {animal for animal, _ in value}
for name in animals - selected_animals:
d[key].append([name, 0])
现在:
>>> d
{'Atlanta': [['Bear', 34274], ['Deer', 13747], ['Bee', 83743], ['Dove', 0]],
'New York': [['Bear', 987], ['Dove', 2635], ['Deer', 0], ['Bee', 0]]}
关于python - 向键添加值,具体取决于该值是否在另一个键中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49187748/