Python 如何从两个不同的列表中添加两个值
编辑:我意识到了一些事情。当我读取文件时,我不仅读取了值,而且还读取了标签 我对一些列表有问题,我正在读取一个文件,结果被放入数据列表。然后我尝试将其他列表中的值添加到这些值中。所以现在我有:Python 如何从两个不同的列表中添加两个值,python,list,sum,zip,Python,List,Sum,Zip,编辑:我意识到了一些事情。当我读取文件时,我不仅读取了值,而且还读取了标签 我对一些列表有问题,我正在读取一个文件,结果被放入数据列表。然后我尝试将其他列表中的值添加到这些值中。所以现在我有: 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, s
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的第二个元素(带数字的元素),我想我必须将list类型转换为integer,它会工作,但是如何操作呢?谢谢 您可以使用map和zip:
a = [1,2,3]
b = [4,5,6]
map(lambda (x,y): x+y,zip(a,b))
输出:
[5, 7, 9]
嗯,我也试过你的代码,它工作正常。
因此,您的问题应该是列表中的值。它们不是整数,但看起来更像是列表。我只是在这样做,它似乎起了作用:
datalist[1] = map(int, datalist[1])
我猜您的列表必须包含嵌套列表和整数,但您需要向我们显示您的实际列表,确保您的列表已初始化为:
new\u Data\u list
,但您使用的是newData\u list
。这是一个输入错误还是实际问题?只是输入错误,对不起,我会编辑这个如果你的datalist和newData\u list都是int,那么datalist=[在zip中x的总和(x)(datalist,newData\u list)]可以正常工作,但是当datalist或newData\u list不包含int元素而不是1时会出现键入错误,当我读取寄存器时,你是对的,我将内容保存为列表类型,我没有注意到这一点,因为它是由其他人制作的。我尝试转换datalist,但我认为没有使用正确的方法,因为它不起作用。我打电话给zip的时候一定要投吗?我会尽量告诉你的。问题是,我想确定我的列表中有整数,所以我做了一个type(thing1)和type(some1),然后我得到了type int,所以..我仍然得到了一个错误TypeError:只能将list(而不是“int”)连接到list。你能打印这两个列表并显示输出吗?我正在为datalist:datalist=list(reader)执行此操作#将文件内容另存为一个列表,其中reader为:reader=csv.reader(csvreadfile,delimiter=',')我检查了一下,并且newData_列表中的数据是int。现在的问题是,如何在datalist中强制转换数据以获得整数