[英]How to create multi-dimensional array typedef in Python
在 C++ 中,可以為一維、二維數組創建一個 typedef,然后使用它們來聲明變量。
typedef char my2DDataArr[2][2];
typedef int my1DDataArr[10];
my2DDataArr arr2d_1= {{0,1},{2,3}};
my1DDataArr arr1d_1 = {1,2,3,4,5,6,7,8,9,10};
我怎樣才能在 Python 中完成類似的工作?
Python等價物是
arr2d_1 = [[0,1],[2,3]]
arr1d_1 = [1,2,3,4,5,6,7,8,9,10]
沒有typedef也不需要指定變量的類型。 最多你可以這樣做:
arr2d_1:list = [[0,1],[2,3]]
arr1d_1:list = [1,2,3,4,5,6,7,8,9,10]
但即便如此, :list
部分也被稱為類型提示,這將有助於一些 IDE 進行重構,這對解釋器並不是一個嚴格的要求。
Python 是強類型但動態類型的。 這意味着您不需要讓編譯器知道變量的類型 - 主要是因為未編譯 python 代碼。
所以很明顯你可以簡單地做這樣的事情:
my_list = [] # List that can contain other lists, could be 1D or nD
initialized_list = [[1, 2], [2, 4]]
現在,正如我寫的那樣,該列表可以包含其他列表。 有些人不喜歡不定義變量類型時的不確定性和可讀性。 為此,您確實有兩種不同的解決方案:
import numpy as np
my_array = np.ndarray((2, 2)) # 2D Array
initialized_array = np.array([[1, 2], [2, 4]])
現在你應該更熟悉這個符號了,因為它是一個二維數組。 與列表不同,它可以也將只有 2 個維度,總共 4 個元素(2x2)。 如果您不關心數組是不可變的和/或想要可變性,您可以只使用type-hints :
from typing import List
my_list: List[List[int]]
my_list = []
像這樣編寫它表示它是一個包含整數列表的列表。 大小仍然沒有限制,但是如果您開始將其他內容放入其中或將其設為 3 維,智能 IDE 會向您發出警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.