1
我已經寫了一些代碼,並試圖理解列表推導的概念,我試圖將一些代碼轉換爲列表解析。幾個列表解析 - 一個接一個
我有一個嵌套的for循環:
with (Input) as searchfile:
for line in searchfile:
if '*' in line:
ID = line[2:13]
IDstr = ID.strip()
print IDstr
hit = line
for i, x in enumerate(hit):
if x=='*':
position.append(i)
print position
我所做的代碼的第一部分成一個列表理解爲這樣的:
ID = [line[2:13].strip() for line in Input if '*' in line]
print ID
這工作得很好。我試圖做下一個,但它不按預期工作。我如何在彼此之後做出幾個列表解析。下面的「Hit = ...」部分工作正常,如果它是第一個列表理解,但不是如果它是第二個。與上述相同 - 如果它是第一個,它似乎只能起作用。爲什麼是這樣?
Hit = [line for line in Input if '*' in line]
print Hit
Positions = [(i, x) for i, x in enumerate(Hit) if x == '*']
print Positions
這很有道理,@tobias_k。您的答案已經過測試,並且可行!謝謝。 – Hjalte
您能否簡單介紹一下上述嵌套列表理解的工作原理? – Hjalte