我正在嘗試連接 3 個串列。當我嘗試使用連接時,像這樣,我得到一個錯誤(TypeError:'list' object cannot be mapped as an integer):
import numpy as np
a = [1]
b = [2]
c = [3]
z = np.concatenate(a, b, c)
但是如果我加上“額外的”括號,它的作業原理是這樣的:
z = np.concatenate((a, b, c))
為什么?
uj5u.com熱心網友回復:
我不確定您使用的是什么庫(concatenate不是內置的 python 3.x 函式)。但是,我會解釋我的想法。
當您呼叫 時concatenate(a, b, c),該函式concatenate會發送三個引數:a、b和c。concatenate然后執行一些(可能)不是所需行為的邏輯。
當您呼叫 時concatenate((a, b, c)),將創建一個值為 的元組(實際上是一個無法更改的串列),該值的(a, b, c)計算結果為([1], [2], [3])。然后這個元組被傳遞給concatenate函式。以下代碼實際上等同于您的第二個代碼段:
a = [1]
b = [2]
c = [3]
y = (a, b, c) # This evaluates to ([1], [2], [3]).
z = concatenate(y)
我希望我已經足夠清楚地解釋了這一點。這是一篇更深入地解釋元組的文章,如果我沒有的話:https ://www.w3schools.com/python/python_tuples.asp
編輯:感謝您包括圖書館。這是您可能正在嘗試做的代碼:
import numpy as np
a = [1]
b = [2]
c = [3]
z = np.array(a b c) # Lists can be concatenated using the ` ` operator. Then, to make a numpy array, just call the constructor
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453147.html
標籤:python-3.x 列表
