【问题标题】:"in" keyword not enough in Python [duplicate]Python中的“in”关键字不够[重复]
【发布时间】:2021-12-19 20:11:49
【问题描述】:

我有这个代码:

x = ["Hello", "World"]
y = ["Hi", "Guys"]
z = [x, y]

以下行将返回 False:

"Hello" in z

但我需要一种方法让它返回是。我需要一种方法来控制对象是否在 z 中包含的列表之一中。唯一的方法是 for 循环?

【问题讨论】:

    标签: python


    【解决方案1】:

    你确实需要某种循环,是的,因为"Hello" 确实不在z 中——它在x 中,而在z 中:

    >>> x = ["Hello", "World"]
    >>> y = ["Hi", "Guys"]
    >>> z = [x, y]
    >>> "Hello" in x
    True
    >>> x in z
    True
    >>> any("Hello" in a for a in z)
    True
    

    在上面的表达式中,a 迭代 xy,我们检查 any 中的 a 是否满足 "Hello" in a

    这是一种相似但不同的方法,它在使用 in 之前将 z 展平(使用嵌套的 for 循环):

    >>> [b for a in z for b in a]
    ['Hello', 'World', 'Hi', 'Guys']
    >>> "Hello" in (b for a in z for b in a)
    True
    

    和以前一样,a 迭代 z 中的每个列表,现在在该迭代中,我们有 b 迭代每个 a 中的每个字符串,这会生成包含所有四个字符串的单个迭代;然后我们可以使用"Hello" in (那个可迭代的)并得到想要的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 2013-04-28
      • 2021-11-07
      • 2021-09-29
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      相关资源
      最近更新 更多