[英]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
不是一個簡單的列表,因為它具有getHeight
和getWidth
,所以我假設它已經處理了任何類型的對象。
如果您使用的是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.