【问题标题】:Simplest way to check if multiple items are (or are not) in a list? [duplicate]检查列表中是否有多个项目的最简单方法? [复制]
【发布时间】:2014-03-26 21:48:53
【问题描述】:

我想使用类似这样的语法:

if a in b

但我想检查多个项目,所以我需要这样的东西:

if ('d' or 'g' or 'u') in a

但我知道它不起作用。

所以我是这样做的:

for i in a:
    for j in ['d','g','u']:
        if i==j

它奏效了, 但我想知道是否有更简单的方法。

【问题讨论】:

  • 如果所有元素都在列表中或者只是其中的一个子集,它应该返回true?
  • 或者如果 any 元素在列表中?
  • 检查:anyall 在文档中。

标签: python


【解决方案1】:

anyall 可用于检查多个布尔表达式。

a = [1, 2, 3, 4, 5]
b = [1, 2, 4]

print(all(i in a for i in b)) # Checks if all items are in the list
print(any(i in a for i in b)) # Checks if any item is in the list

【讨论】:

    【解决方案2】:

    使用any 加上一个生成器:

    if any(x in d for x in [a, b, c]):
    

    或者检查集合交集:

    if {a, b, c} & set(d):
    

    【讨论】:

    • 所以这个表达式 (x in d for x in [a, b, c]) 是一个生成器,它将 d 中的 x 与 [a,b,c] 中的 x 进行比较,反之亦然?
    猜你喜欢
    • 2015-01-10
    • 1970-01-01
    • 2017-05-11
    • 2013-07-04
    • 2013-05-28
    • 2019-05-22
    • 1970-01-01
    • 2015-01-11
    相关资源
    最近更新 更多