在Python中,如何检查字典中是否至少有一个键作为值存在于另一个字典中?

2024-06-26 02:05:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个接受dictionary1并检查是否有任何键作为值字典2存在的函数。在

我尝试过使用dictionary2.isdisjoint(dictionary1),但这只对检查密钥有效。在

如何在Python中检查key-to-value?在


Tags: tokey函数字典value密钥dictionary2dictionary1
3条回答

不确定这是否真的是一个足够大的任务来放入一个单独的函数中,但是无论如何,下面是一个使用any()关键字的示例:

if any(k in d2.values() for k in d1.keys()):
    # do stuff

这不是一个内置的操作。你需要自己写逻辑。您似乎使用的是python3,因此下面这样的方法可能有用

>>> x = dict.fromkeys([0, 5, 10])
>>> y = {x: x for x in range(5)}
>>> print(x.keys().isdisjoint(y.values()))
False
>>> x.pop(0)
>>> print(x.keys().isdisjoint(y.values()))
True

如果下面的语句返回True(它将返回公共值),则:

set(dictionary1.keys()) & set(dictionary2.values())

说明:

  • dictionary1.keys()将给出字典1中的键列表

  • dictionary2.values()将给出字典2中的值列表

  • 将这两个转换为set,如果它们有共同的值,则结束 和他们之间的共同价值观。在
dictionary1 = {1:2, 2:3, 3:4}
dictionary2 = {2:1, 2:3, 3:4}
print set(dictionary1.keys()) & set(dictionary2.values())

输出:

^{pr2}$

相关问题 更多 >