繁体   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