簡體   English   中英

Python從和數組中獲取元素並將其放入2D數組中

[英]Python taking elements from and array and putting them into a 2d array

我一直在嘗試從數組中獲取元素並將其放入2d數組中,我想知道是否有辦法做到這一點?

例如

h = ['H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'T']
a = Grid(3,3) #creates empty 2d array 

輸出將是

H H H
H H H
H H T

我一直在做這樣的事情。

for row in range(a.getHeight()):
    for col in range(a.getWidth():
        for i in range(len(h):
            a[row][col] = h[i]

但我得到這個作為輸出:

T T T
T T T
T T T

我想我可能會做這樣的事情:

hh = iter(h)
for row in range(a.getHeight()):
    for col in range(a.getWidth()):
         a[row][col] = next(hh)

這是假設你宣布a正確。 換句話說, a 不是按以下方式設置的列表:

a = [[None]*ncol]*nrow

那是行不通的,因為a會包含一堆對同一內部列表的引用。 當然,您的a不是一個簡單的列表,因為它具有getHeightgetWidth ,所以我假設它已經處理了任何類型的對象。


如果您使用的是numpy ,這將變得微不足道:

h = np.array(['H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'T'])
a = h.reshape((3,3)) 

使用列表理解:

In [11]: h = ['H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'T']

In [12]: [h[i:i+3] for i in range(0,len(h),3)]
Out[12]: [['H', 'H', 'H'], ['H', 'H', 'H'], ['H', 'H', 'T']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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