gpt4 book ai didi

python - 如果值是python中的键,则删除字典的值

转载 作者:行者123 更新时间:2023-11-28 22:14:15 25 4
gpt4 key购买 nike

我有一本字典,我想删除作为键的字典的每个值。我想要这样的输出:G = {'y': {'z'}, 'z': {'u', 'f', 'y'}, 'u': {'z'}}

G = {'y': {'z', 'y'}, 'z': {'z', 'u', 'f', 'y'}, 'u': {'u', 'z'}}

我试过了,但我知道。这是错误的。

for key,value in G.items():
if key == value:
del value

最佳答案

您不是在修改字典,而是在修改变量。此外,您不想寻找键和值的相等性,您想要检查您的键是否您的设置值中。然后通过 set.remove 从你的集合中删除它.所以你可以使用:

for key, value in G.items():
if key in value:
G[key].remove(key)

print(G)

{'y': {'z'}, 'z': {'u', 'y', 'f'}, 'u': {'z'}}

或者,您可以使用 set.discard ,如果您的集合中不存在该值,则不会给出 KeyError。因此可以省略 if 条件。

for key, value in G.items():
G[key].discard(key)

最后,考虑下面的字典理解,它创建了一个字典并将其分配给G。这本质上并不是低效的:时间复杂度将与上述方法相同。此版本使用 set.difference ,这里通过它的语法糖 -:

G = {k: v - {k} for k, v in G.items()}

根据@JonClements 的评论,可以通过 dict.update 维护对 G 的引用的单行版本:

G.update({k: v - {k} for k, v in G.items()})

关于python - 如果值是python中的键,则删除字典的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com