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