在python中建立二維陣列的最佳方法是什麼?
我想要的是儲存這樣的值:
x , y , z
這樣我就可以訪問像x[2],y[2],z[2]或x[n],y[n],z[n]這樣的資料,其中n是可變的。我一開始不知道n有多大,所以我想在末尾附加值。
>>> a =
>>> for i in xrange(3):
... for j in xrange(3):
>>> a
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
@但是你的**很難閱讀。
根據您所做的,您可能沒有真正的二維陣列。
80%的時候,你有乙個簡單的"類行物件"列表,這可能是正確的序列。
myarray = [ ('pi',3.14159,'r',2), ('e',2.71828,'theta',.5) ]
myarray[0][1] == 3.14159
myarray[1][1] == 2.71828
更常見的是,它們是類、字典、集合的例項,或者是在以前的語言中沒有的更有趣的例項。
myarray = [ , ]
20%的時間你有一本字典,用一對鍵盤
myarray =
很少,你真的需要矩陣嗎?
在python中有大量的集合類。很可能你有比矩陣更有趣的東西。
在python中,通常使用列表來實現這一目的。列表可以任意巢狀,從而允許建立二維陣列。並非每個子列表都需要相同的大小,這樣就解決了您的另乙個問題。看看我鏈結到的例子。
如果您想對陣列做一些嚴肅的工作,那麼應該使用numpy庫。例如,這將允許您執行向量加法和矩陣乘法,對於大型陣列,它比python列表快得多。
但是,numpy要求預先定義大小。當然,您也可以在列表中儲存numpy陣列,例如:
import numpy as np
vec_list = [np.zeros((3,)) for _ in range(10)]
vec_sum = vec_list[0] + vec_list[1] # possible because we use numpy
print vec_list[10][2] # prints 3
號但是,由於numpy陣列非常小,我想與使用tuple相比會有一些開銷。這完全取決於你的優先順序。
另請參見另乙個非常相似的問題(除了可變大小)。
我考慮過這個問題,是的,這是乙個有用的補充。不過,numpy需要固定長度的陣列,這不是事實嗎?
是的,謝謝,我修改了答案,以便更清楚地回答這個問題。
我建議你使用這樣的詞典:
arr = {}
arr[1] = (1, 2, 4)
arr[18] = (3, 4, 5)
print(arr[1])
>>> (1, 2, 4)
如果您不確定在字典中定義了乙個條目,那麼在呼叫"arr[x]"時需要乙個驗證機制,例如try except。
如果你想要乙個多維的"陣列",你可以在字典中使用元組作為鍵,比如:arr[(1,20)]=12
如果您關心記憶體占用,python標準庫包含陣列模組;這些陣列包含相同型別的元素。
x=list()
def enter(n):
y=list()
for i in range(0,n):
return y
for i in range(0,2):
x.insert(i,enter(2))
print (x)
在這裡,我建立了建立一維陣列的函式,並將其作為陣列成員插入到另乙個陣列中。乙個陣列中的多個一維陣列,當n和i的值改變時,u建立多維陣列。
請考慮以下**:
from numpy import zeros
scores = zeros((len(chain1),len(chain2)), float)
歡迎使用堆疊溢位!額外的解釋會提高你的答案。
python什麼意思d python裡d是什麼意思
詳細內容 python中的fd 是turtle模組中的乙個方法。fd 方法的實參是畫素距離。turtle模組 它可以讓你使用海龜圖形 turtle graphics 繪製影象 turtle模組其中的函式 1 turtle.pensize 設定線條的粗細 2 turtle.speed 設定繪製的速度,...
python什麼意思d python裡d是什麼意思
python中的fd 是turtle模組中的乙個方法。fd 方法的實參是畫素距離。turtle模組 它可以讓你使用海龜圖形 turtle graphics 繪製影象 turtle模組其中的函式 1 turtle.pensize 設定線條的粗細 2 turtle.speed 設定繪製的速度,1 10,...
Python中的列表(2)
一 從列表中刪除元素 使用del 語句刪除。books pride and prejudice jane eyre the catcher in the rye print books delbooks 0 print books console 控制台 可以看到,列表中的第乙個元素確實被刪除了。需...