簡體   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