因为键有多个值,我想删除与键本身相同的值?也就是说,我有一个字典jumps
:
jumps = {'I6': ['H6', 'I6', 'I5'], 'T8' : ['T6', 'S6', 'T8']}
我想删除 'I6'
键中的值 'I6'
以及 中的
键。我怎么能这样做?我在解析字符串与值时混淆了。 'T8'
'T8'
最佳答案
您可以使用 one-liner 同时具有字典理解 和列表理解:
result = {<b>k</b>:[vi for vi in <b>v</b> if <b>k</b> != vi] for <b>k,v</b> in jumps.items()}
这导致:
>>> {k:[vi for vi in v if k != vi] for k,v in jumps.items()}
{'T8': ['T6', 'S6'], 'I6': ['H6', 'I5']}
请注意,您将从列表中删除等于键的所有 元素。此外,删除过程是针对所有键完成的。
代码的工作方式如下:我们遍历 jumps
字典中的每个 key-value 对 k,v
。然后对于每个 这样的对,我们在生成的字典中构造一个键,并将[vi for vi in v if k != vi]
与它相关联。这是一个列表推导式,我们过滤掉所有等于 k
的 v
值。因此只有 vi
保留(按此顺序)是 k != vi
。
关于Python:如果它与键完全匹配,如何从字典中删除一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42894508/