在Python中合并列表时的ValueError

时间:2013-11-06 01:08:03

标签: python list python-2.7 numpy merge

我正在尝试从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)

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

亲切的问候

3 个答案:

答案 0 :(得分:2)

如果单个项目

,您可以使用append方法
data_complete.append (data)

如果extend本身就是一个列表

,您可以使用data方法
data_complete.extend (data)

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

只需append列表中的数据

例如:

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

在此计划结束时evens将等于[2,4,6,8]