Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么此生成器表达式会引发语法错误?_Python_List_Python 3.x_Any - Fatal编程技术网

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

Python 为什么此生成器表达式会引发语法错误?,python,list,python-3.x,any,Python,List,Python 3.x,Any,这一行抛出一个错误,说我没有定义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]

这一行抛出一个错误,说我没有定义
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)

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)