if any(j != " " for j in i): 是啥意思?
Posted
技术标签:
【中文标题】if any(j != " " for j in i): 是啥意思?【英文标题】: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 的目的是什么
【参考方案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]
-
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”)
【讨论】:
以上是关于if any(j != " " for j in i): 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
php有木有 直接显示星期几(中文)的函数 我写的这两种都感觉好别扭