簡體   English   中英

如何在 Python 中創建多維數組 typedef

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM