gpt4 book ai didi

python - 判断两个字典是否导致循环

转载 作者:行者123 更新时间:2023-12-02 05:57:45 25 4
gpt4 key购买 nike

我有两个字典,其中字典内的字典代表另一个字典中的值:

dict1 = {1:{1,3}, 2:{2}}
dict2 = {1:{5}, 3:{1}}

我试图找出组合是否会导致循环,例如:

dict1: 1 -> dict2: 3 -> dict1: 1;这会导致循环,因此我的脚本应该抛出错误。

dict1: 2 -> 不在 dict2 中;没有循环就可以了

dict1: 1 -> dict2: 1 -> 5 不在 dict 1 中;没有循环就可以了

有什么想法可以解决这个问题吗?提前致谢!

最佳答案

如果您只想知道两个字典之间是否存在循环,可以使用以下代码:

for key, values in dict1.items():
if any([v in dict2 and key in dict2[v] for v in values]):
print('loop found')

否则,如果你想知 Prop 体的循环在哪里,你需要对上面代码中的values进行迭代:

for key, values in dict1.items():
for v in values:
if v in dict2 and key in dict2[v]:
print('loop found from ' + str(key) + ' through value ' + str(v) + ' back to ' + str(key))

对于您的示例数据,第一个代码片段的输出为 loopfound,或者第二个代码片段的输出为 loopfound from 1 through value 3 back to 1

关于python - 判断两个字典是否导致循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60524807/

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