0

我正在尝试从 python 2.7 中的多个数组中获取一个数组

我在互联网上发现只需添加两个列表即可完成此操作:

lista = [1,2,3]
listb = [3,4,5]
listc = lista + listb

在我的情况下,我的第一个列表是空的,下一个列表有 99 个元素。

我的代码看起来像这样

data_complete = []
for i in range(1, numberOfFiles+1):
    data = getDataFromFile(i)
    data_complete = data_complete + data

最后一行代码不起作用,它返回错误:

data_complete = data_complete + data
ValueError: operands could not be broadcast together with shapes (0) (99)

如果有人能解决这个问题,我会很高兴。

亲切的问候

4

3 回答 3

2

append如果它是单个项目,您可以使用方法

data_complete.append (data)

如果它本身是一个列表,你可以使用extend方法data

data_complete.extend (data)
于 2013-11-06T01:12:37.387 回答
2

看起来getDataFromFile返回的是一个 numpy 数组,而不是一个列表。在这种情况下,+将使用数组的连接例程,与 s 相比,它有一些额外的要求list(并返回另一个数组)。您可以使用 listextend方法来解决此问题:

data_complete = []
for i in range(1, numberOfFiles+1):
    data = getDataFromFile(i)
    data_complete.extend(data)
于 2013-11-06T01:16:09.707 回答
0

只是append您列表中的数据

例如:

evens = []
for i in xrange(10):
    if i%2 == 0:
        evens.append(i)

在这个程序结束时evens将等于[2,4,6,8]

于 2013-11-06T01:11:12.083 回答