我不是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)