【问题标题】:what does if any(j != " " for j in i): mean?if any(j != " " for j in i): 是什么意思?
【发布时间】:2017-07-20 09:56:00
【问题描述】:
if any(j != " " for j in i):

izip_longest 是什么意思

还有一个网站可以定义所有这些吗?

【问题讨论】:

  • 为什么你的标签里有java和python?
  • 这个问题与Java无关。请不要使用不相关的标签。
  • 请澄清,你想问什么?
  • 您的代码示例中没有izip_longest
  • 我只是想知道每一件事情的意义,比如 j, != , " ", for j in i 的目的是什么

标签: python


【解决方案1】:

一步一步:

  1. (j != " " for j in i) 返回带有布尔元素 (True, False) 的生成器

例子:

i = ['a','b','c',' ', 'd']
gener = (j != " " for j in i)
print list(gener)
[True, True, True, False, True]
  1. function any():如果列表中的任何元素为 True,则返回 True。如果列表为空,则返回 False。

例子:

print any([True,False,False])
True

print any([False,False,False])
False

print any([])
False

所以,表达式 any(j != " " for j in i) 如果列表 i !=" " 中的任何元素返回 True,如果列表 i 中的所有元素等于 " " 或 i 为空,则返回 False

【讨论】:

    【解决方案2】:

    != 表示不相等

    for j in i 表示遍历 i 的每个元素并将结果放入 j 中

    例如,如果 i 是这样的列表:

    i=[" ", " ", " "]
    

    然后 j != " " for j in i 会检查每一项是否不是 " "

    当放在 any() 中时,如果任何 j 值不是“”,它将返回 true。所以对于上面 i 的例子,整体结果会是假的,因为 i 里面的所有项目都是“”。

    如果我们改为将 i 设置为包含其他内容:

    i==[" ", " ", "x"]
    

    然后

    if any(j != " " for j in i):
    

    将返回 True,因为它会找到一个不是“”的元素(其中一个是“x”)

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多