Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对两个元组列表求和_Python - Fatal编程技术网

Python 如何对两个元组列表求和

Python 如何对两个元组列表求和,python,Python,如何将它们组合成一个元组列表?考虑到键的第一个值出现在两个列表中。在列表1、列表2上使用zip,然后添加每个元组的第二个值: list1 = [(1533945600000, 140), (1534032000000, 412), (1534118400000, 364), (1534204800000, 488), (1534291200000, 272), (1534377600000, 350), (1534464000000, 301), (1534550400000, 159), (1

如何将它们组合成一个元组列表?考虑到键的第一个值出现在两个列表中。

在列表1、列表2上使用
zip
,然后添加每个元组的第二个值:

list1 = [(1533945600000, 140), (1534032000000, 412), (1534118400000, 364), (1534204800000, 488), (1534291200000, 272), (1534377600000, 350), (1534464000000, 301), (1534550400000, 159), (1534636800000, 224), (1534723200000, 241), (1534809600000, 223), (1534896000000, 175)]


list2 = [(1533945600000, 1516), (1534032000000, 2176), (1534118400000, 2046), (1534204800000, 2400), (1534291200000, 8370), (1534377600000, 2112), (1534464000000, 1441), (1534550400000, 784), (1534636800000, 1391), (1534723200000, 1178), (1534809600000, 1020), (1534896000000, 795)]

如果列表不能保证长度相同,或者键不能保证出现在两个列表中,或者它们的顺序不同,则可以使用以下代码段:

lst = []
for tup1,tup2 in zip(list1,list2):
    sum_ = tup1[1]+tup2[1]
    lst.append((tup1[0],sum_))

lst

[(1533945600000, 1656),
 (1534032000000, 2588),
 (1534118400000, 2410),
 (1534204800000, 2888),
 (1534291200000, 8642),
 (1534377600000, 2462),
 (1534464000000, 1742),
 (1534550400000, 943),
 (1534636800000, 1615),
 (1534723200000, 1419),
 (1534809600000, 1243),
 (1534896000000, 970)]
res:


使用
列表理解
邮政编码

combined_list=[]
for i,j in zip(list1,list2):
     combined_list.append((i[0]+j[0],i[1]+j[1]))
#驱动程序值:

>>> [(x[0], x[1]+y[1]) for x,y in zip(list1, list2)]

你能再解释一下吗?不完全确定您是否只想合并两个列表或其他内容。只是为了澄清,您想在每个元组中添加第二个项目,但第一个项目保持不变?您的第一件物品是(15339456000001656)?你以前对元组做过任何工作吗?@lionelbammalf是的,将第二个值相加,留下第一个值,你可以发布输出的样子吗?例如,
打印(输出)
@lapinkoira在列表1和列表2中元组的第一个值的顺序可能不同吗?这个答案提出了几个可能不合适的假设:1。列表的长度相同。2.元组在两个列表中具有相同的键。3.元组在两个列表中的顺序相同。@AgostBiro根据OP的评论,我的假设是正确的。由于这些假设在问题中不清楚,我的评论是为了警告其他试图解决相同问题的人。@AgostBiro我感谢你的评论。只是我的假设符合OP的期望。谢谢。
combined_list=[]
for i,j in zip(list1,list2):
     combined_list.append((i[0]+j[0],i[1]+j[1]))
>>> [(x[0], x[1]+y[1]) for x,y in zip(list1, list2)]
IN : list1 = [(1533945600000, 140), (1534032000000, 412), (1534118400000, 364), (1534204800000, 488), (1534291200000, 272), (1534377600000, 350), (1534464000000, 301), (1534550400000, 159), (1534636800000, 224), (1534723200000, 241), (1534809600000, 223), (1534896000000, 175)]
     list2 = [(1533945600000, 1516), (1534032000000, 2176), (1534118400000, 2046), (1534204800000, 2400), (1534291200000, 8370), (1534377600000, 2112), (1534464000000, 1441), (1534550400000, 784), (1534636800000, 1391), (1534723200000, 1178), (1534809600000, 1020), (1534896000000, 795)]

OUT : [(1533945600000, 1656), (1534032000000, 2588), (1534118400000, 2410), (1534204800000, 2888), (1534291200000, 8642), (1534377600000, 2462), (1534464000000, 1742), (1534550400000, 943), (1534636800000, 1615), (1534723200000, 1419), (1534809600000, 1243), (1534896000000, 970)]