我遇到了一個非常精簡的代碼塊,它使用for-loop和if語句來查找字符串中的所有數字,並將它們添加到列表中。問題是我不明白它爲什麼起作用。如何在列表中構建稠密for循環
string = "h3110 23 cat 444.4 rabbit 11 2 dog"
alist = [int(s) for s in string.split() if s.isdigit()]
print (alist)
此打印['23', '11', '2']
有兩位我不明白:
- 被如何定義,在2號線INT(S) 「S」,即使在輸入時for循環之前?
- 爲什麼這個代碼沒有else/return/pass /等功能。 if語句的原因是什麼?
此代碼基本上執行以下操作:
alist = []
for s in string.split():
if s.isdigit():
alist.append(s)
else:
pass
print (alist)