0
此行拋出一個錯誤,說我沒有定義x
即使我說,x
是列表中的一個元素:爲什麼此生成器表達式會引發語法錯誤?
any(i.isdigit() for i in x for x in [name.id for name in all.names])
所以x
是列表中的字符串元素,我檢查如果每個元素x
中的某個字符,該元素x
包含使用.isdigit()
的數字。這是怎麼回事?
此行拋出一個錯誤,說我沒有定義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)