检查dict中是不是存在给定项目的列表[重复]

Posted

技术标签:

【中文标题】检查dict中是不是存在给定项目的列表[重复]【英文标题】:Check if list with given items is present in dict [duplicate]检查dict中是否存在给定项目的列表[重复] 【发布时间】:2017-02-08 10:54:51 【问题描述】:

我有一个这样的字典和一个列表:

hey = '2': ['Drink', 'c', 'd'], '1': ['Cook', 'a']
temp = ['Cook', 'a']

我想检查temp 是否存在于hey 中。我的代码:

def checkArrayItem(source,target):
    global flag
    flag = True

    for item in source:
        if (item in target):
            continue
        else:
            flag = False
            break
for i,arr in enumerate(hey) :
    if (len(temp) == len(hey[arr])):
        checkArrayItem(temp,hey[arr])
        if (flag):
            print('I got it')
            break

有什么更优雅的方式来做这个检查?

【问题讨论】:

你的意思是你有一个dict和一个list 谢谢,我看到了链接。 【参考方案1】:

temp in hey.values()怎么样?

【讨论】:

谢谢,优秀的回答 @RelaxZeroC:不客气。【参考方案2】:

只需使用sets 完全与容器进行比较:

In [40]: hey = '2': ['Drink', 'c', 'd'], '1': ['Cook', 'a']

In [41]: temp = 'Cook', 'a'
# This will give you the keys within your dictionary that their values are equal to tamp
In [42]: [k for k, v in hey.items() if set(v) == temp]
Out[42]: ['1']

【讨论】:

谢谢,很好用。

以上是关于检查dict中是不是存在给定项目的列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是在列表中,使用每个项目上的函数(python3)[重复]

NSMutableArray检查项目是不是存在[重复]

检查列表中的所有项目是不是相同

检查列表框中的项目是不是已存在于许多其他列表框中?

检查给定列表中的元素是不是存在于 DataFrame 的数组列中

检查自定义类列表中是不是存在变量[重复]