Python从和数组中获取元素并将它们放入2d数组中

2024-07-04 08:03:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试从数组中提取元素,并将它们放入二维数组中,我想知道有没有办法做到这一点?在

例如

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

输出将是

^{pr2}$

我一直在做这样的事。在

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

Tags: in元素forrangecol数组arraygrid
2条回答

我想我可以这样做:

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

这假设您正确地声明了a。换言之,a不是按如下方式设置的列表:

^{pr2}$

这不起作用,因为a会包含一堆对同一个内部列表的引用。当然,您的a并不是一个简单的列表,因为它有getHeight和{},所以我假设它已经处理了任何类型的对象。在


如果您使用的是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']]

相关问题 更多 >

    热门问题