Python 检查列表是否存在于其他列表中?

Python 检查列表是否存在于其他列表中?,python,list,Python,List,好吧,我正在尝试一种更具python风格的做事方法 我怎样才能做到以下几点: required_values = ['A','B','C'] some_map = {'A' : 1, 'B' : 2, 'C' : 3, 'D' : 4} for required_value in required_values: if not required_value in some_map: print 'It Doesnt Exists' return Fals

好吧,我正在尝试一种更具python风格的做事方法

我怎样才能做到以下几点:

required_values = ['A','B','C']
some_map = {'A' : 1, 'B' : 2, 'C' : 3, 'D' : 4}

for required_value in required_values:
    if not required_value in some_map:
        print 'It Doesnt Exists'
        return False
return True
我查看了内置函数
all
,但我不知道如何将其应用于上述场景


有什么建议可以让这个更具Python风格吗?

试试下面的列表:

all(value in some_map for value in required_values)
返回not bool([x表示x在所需的_值中,如果x不在某些_map.keys()中])(为清晰起见,bool转换)

或者返回not[x for x in required_values,如果x不在某些_map.keys()中(我认为更像python的方式)

inside[]语句生成映射键以外的所有必需值的列表 如果列表为空,则计算结果为False,否则为True

因此,如果映射没有所有必需的值,那么列表理解表达式构建的列表中至少会有一个元素。
这将计算为True,因此我们将否定结果以满足您的代码要求(所有必需的值都应该出现在映射中)

注意:这仅适用于仅由可哈希元素组成的列表。否则,当执行“某个映射中的值”@Triptych时,您将得到一个TypeError异常。这正是我现在所经历的。事实证明,使用“in”(在接受的答案中)进行dict键查找比检索键列表并将其转换为一个集合要快得多。
return set(required_values).issubset(set(some_map.keys()))