我是Python的新手,所以我希望有人可以分解以下语句并解释每个部分的目的。
[digit for digit in string.split() if digit.isdigit()][0]
很显然,for digit in string.split()
通过将字符串分成每个空格中的元素来创建子字符串列表。
让我感到困惑的是开头的digit
和结尾的if
语句。
是digit
的第一个if digit.isdigit()
返回值吗?
为什么必须将此语句包装在列表中?
我之前从未见过for循环和if语句组合成一个这样的语句,但是它让我想起了一种特定的JS语法:for (condition) // whatever
或if (condition) // whatever
。但是,在JS中,您无法将它们合并为一个语句(即for (condition) if (condition) // whatever
)。
答案 0 :(得分:0)
这称为列表理解。您会发现很多页面解释了它是如何工作的。只需问您喜欢的搜索引擎。