检查一个列表是否存在于另一个列表中?

3 投票
3 回答
3380 浏览
提问于 2025-04-15 11:55

好的,我想用一种更符合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的风格呢?

3 个回答

0

试试用列表推导式:

返回 not bool([x for x in required_values if x not in some_map.keys()])(这样做是为了让结果更清晰)

或者返回 not [x for x in required_values if x not in some_map.keys()](我觉得这样更符合Python的风格)

里面的 [] 语句会生成一个列表,包含所有在你的映射(map)中找不到的必需值。如果这个列表是空的,那它的值就是 False;如果不空,就是 True。

所以,如果映射中没有所有必需的值,列表推导式生成的列表里至少会有一个元素。这样就会得到 True 的结果,因此我们取反这个结果,以满足你的代码要求(也就是所有必需的值都应该在映射中)。

3
return set(required_values).issubset(set(some_map.keys()))

这段代码的作用是……

首先,它会……

接着,它会检查……

如果满足某个条件,它就会……

最后,代码会返回……

总的来说,这段代码的目的是……

希望这个解释能帮助你更好地理解这段代码!

11

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续进行。

比如说,如果你在写一个游戏,当玩家的分数达到100分时,你可能想要显示一个“恭喜你”的消息。这种情况下,你就需要用到条件判断。

条件判断就像是在问程序:“如果这个条件成立,你就做这件事;如果不成立,就做其他事情。”这样可以让程序更加灵活,能够根据不同的情况做出不同的反应。

希望这个解释能帮助你更好地理解条件判断的概念!

all(value in some_map for value in required_values)

撰写回答