繁体   English   中英

为什么此生成器表达式会引发语法错误?

[英]Why does this generator expression raise a syntax error?

此行引发错误,即使我声明x是列表的元素,我也没有定义x

any(i.isdigit() for i in x for x in [name.id for name in all.names])

因此, x是列表中的字符串元素,我检查如果在每一个元素一些字符x ,该元素x使用含有许多.isdigit() 为什么这不起作用?

Python中的推导/生成器表达式从左到右嵌套(是的,可能有点令人困惑)。 交换它们:

for x in [name.id for name in all.names] for i in x

或为清楚起见分开:

def contains_digit(s):
    return any(c.isdigit() for c in s)


any(contains_digit(name.id) for name in all.names)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM