例如,如果我有以下兩個數組。如何將兩個列表合併到一個數組中,以便我不必對其進行硬編碼
x = [1,3,5]
y = [2,4,6]
我不想像下面的硬編碼顯示輸出。
因爲如果我這樣做,那麼從上面就沒有x
和y
。
arr = [[1,2],[3,4],[5,6]]
我怎麼能只寫一個聲明,這只是讓一個數組承認的x
每個指標對應的y
相同的索引。因此,x = 1
是y = 2
等。
例如,如果我有以下兩個數組。如何將兩個列表合併到一個數組中,以便我不必對其進行硬編碼
x = [1,3,5]
y = [2,4,6]
我不想像下面的硬編碼顯示輸出。
因爲如果我這樣做,那麼從上面就沒有x
和y
。
arr = [[1,2],[3,4],[5,6]]
我怎麼能只寫一個聲明,這只是讓一個數組承認的x
每個指標對應的y
相同的索引。因此,x = 1
是y = 2
等。
arr = [list(item) for item in zip(x,y)]
您應該使用zip
function並將其轉換爲像這樣的列表:
>>> array = list(zip(x, y))
[(1, 2), (3, 4), (5, 6)]
這將創建一個元組列表。請注意,您仍然可以對列表等元組執行正常的索引操作。如果你真的想子列表而不是元組,那麼你應該這樣做:
>>> array = [list(item) for item in list(zip(x, y))]
[[1, 2], [3, 4], [5, 6]]
Upvote for the explanation :) –
你應該注意Python 2和3之間'zip()'的行爲差異。 –
如果你是罰款個別聯軸器是元組,這裏是另一番風味:
x = [1,3,5]
y = [2,4,6]
print zip(*[x,y]) #prints [(1, 2), (3, 4), (5, 6)]
當然,你可以修改它成爲:
a = zip(*[x,y])
b = [ list(n) for n in a ] #gives: [[1, 2], [3, 4], [5, 6]]
@downvoter:謹慎解釋爲什麼? – labheshr
謝謝!你爲我節省了很多時間。 –
請考慮編輯您的帖子,以添加更多關於您的代碼的解釋以及爲什麼它可以解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – SuperBiasedMan