关于python:“x for x in”语法是什么意思?

What does the “x for x in” syntax mean?

本问题已经有最佳答案,请猛点这里访问。

执行此代码时实际发生的情况:

1
2
3
text ="word1anotherword23nextone456lastone333"
numbers = [x for x in text if x.isdigit()]
print(numbers)

据我所知,[]制作了一个列表,如果字符串(文本)元素是数字,.isdigit()检查是真是假。然而,我对其他步骤不确定,尤其是:在for循环前面,"x"是做什么的?

我知道输出是什么(下面),但它是如何完成的?

1
Output: ['1', '2', '3', '4', '5', '6', '3', '3', '3']


这只是标准的python列表理解。这是另一种编写更长for循环的方法。您将循环遍历字符串中的所有字符,如果字符是数字,则将它们放入列表中。

有关列表理解的更多信息,请参阅此部分。