for循环和理解的深刻区别?



我不是python专业人士,所以我需要知道:

为什么这样做:

s = "test123"
print (any(c.isalnum() for c in s))

这不起作用(给出" boolean "(错误):

s = "test123"
for c in s:
print(any(c.isalnum()))

感觉在推导式中有一些额外的代码告诉它如何处理遍历这些bool。

而且,感觉就像推导式将c/s的每次迭代的bool值存储到一个列表中,并在末尾调用any方法。而在for循环中,我需要创建一个bool列表,然后在其上运行any方法。如果我说错了请指正。

any函数需要一个迭代器作为参数(就像您在第一个示例中使用的那样),并检查每次迭代返回的布尔值。for循环执行迭代并逐一提供值。因此,在循环中实现条件检查并在找到True值后立即退出取决于您。

例如:

s = "test123"
result = False
for c in s:
if c.isalnum():
result = True
break
print(result)

最新更新