我遇到了一些列表问题,我正在读取文件,结果放在datalist中。然后我尝试添加这些值,来自另一个列表的值。所以现在我有:
datalist = [['first','second','third','fourth','fifth'],[1,2,3,4,5]]
newData_list = [0,1,1,0,2]
我想:datalist = [1,3,4,4,7]我这样做:
datalist= [some1, some2, some3]
newData_list=[thing1, thing2, thing3]
datalist = [sum(x) for x in zip(datalist, newData_list)]
#and already try these
#datalit = sum([datalist,newData_list], axis=0)
#datalist = map(sum, zip(datalist, newData_list))
#datalist=[x + y for x, y in zip(datalist, newData_list)]*
根据我使用哪一行,我遇到了这些错误:
TypeError: unsupported operand type(s) for +: 'int' and 'list'
TypeError: can only concatenate list (not "int") to list
我使用csv.reader从文件中获取值。内容将作为列表保存在datalist中。我怎么能操纵datalist的第二个元素(一个有数字),我想我必须将列表类型转换为整数,它会起作用,但如何?谢谢 !
答案 0 :(得分:0)
你可以使用map和zip来实现:
a = [1,2,3]
b = [4,5,6]
map(lambda (x,y): x+y,zip(a,b))
输出:
[5, 7, 9]
嗯,我也尝试过上面的代码,它正常工作。 所以你的问题应该是列表中的值。它们不是整数,但它们看起来更像是列表。
答案 1 :(得分:0)
我只是这样做,似乎有效:
datalist[1] = map(int, datalist[1])