初學者在這裏,但我有一個重要的問題。對於循環Fiasco和問題的使用通常爲循環
s1 = [1,2,3,4,5]
s2 = [6,7,8,9,0]
for x in s1:
y = [len(s2), x]
y
以此代碼爲例。它返回[5,5]。然而,在後臺,它通過[5,1],[5,2]等循環,直到達到[5,5]。
問:我如何讓它回到
[5,1],[5,2],[5,3],[5,4],[5,5] 完全一樣? ?
初學者在這裏,但我有一個重要的問題。對於循環Fiasco和問題的使用通常爲循環
s1 = [1,2,3,4,5]
s2 = [6,7,8,9,0]
for x in s1:
y = [len(s2), x]
y
以此代碼爲例。它返回[5,5]。然而,在後臺,它通過[5,1],[5,2]等循環,直到達到[5,5]。
問:我如何讓它回到
[5,1],[5,2],[5,3],[5,4],[5,5] 完全一樣? ?
像這樣:
s1 = [1,2,3,4,5]
s2 = [6,7,8,9,0]
s3=[]
for x in s1:
y = [len(s2), x]
s3.append(y)
y=s3
您可以y
空數組,每一次使用append
追加到它:
s1 = [1,2,3,4,5]
s2 = [6,7,8,9,0]
y = []
for x in s1:
y.append([len(s2), x])
print(y) # => [[5, 1], [5, 2], [5, 3], [5, 4], [5, 5]]
您也可以使用列表理解失去了一些行:
y = [[len(s2), x] for x in s1]
print(y) # => [[5, 1], [5, 2], [5, 3], [5, 4], [5, 5]]
您的代碼重新分配一個新值到y
每次迭代時都不保存,因此當你最終想要檢查它時,它只顯示最後一次迭代時分配給它的值。相反,您需要將該值保存(追加)到新列表中。最好的解決方法是使用一個簡單的列表理解:
>>> s1 = [1, 2, 3, 4, 5]
>>> s2 = [6, 7, 8, 9, 0]
>>> y = [[len(s2), x] for x in s1]
>>> y
[[5, 1], [5, 2], [5, 3], [5, 4], [5, 5]]
...這相當於:
y = []
for x in s1:
y.append([len(s2), x])
......或者......
y = []
for x in s1:
y += [[len(s2), x]]
有循環內的Y,所以它被打印在每個循環中。
for x in s1:
y = [len(s2), x]
print y,
可能重複[列表理解是什麼意思?它是如何工作的,我該如何使用它?](https://stackoverflow.com/questions/34835951/what-does-list-comprehension-mean-how-does-it-work-and-how-can-i -用它) – mkrieger1