Python 3.x python3对两个不同大小的列表求和,但不重复

Python 3.x python3对两个不同大小的列表求和,但不重复,python-3.x,Python 3.x,我想把上面的两张表加起来。因为它们是不同长度的列表,所以我只想在返利列表结束时,它会继续与薪资列表。总长度与工资相同 最接近我的是 pay = [1120, 1176, 1232, 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680, 1736, 1792, 1848, 1904, 1960, 2016, 2072, 2128, 2184, 2240] rebate = [260.0, 218.0, 176.0, 134.0, 92.0, 50.0,

我想把上面的两张表加起来。因为它们是不同长度的列表,所以我只想在返利列表结束时,它会继续与薪资列表。总长度与工资相同

最接近我的是

pay = [1120, 1176, 1232, 1288, 1344, 1400, 1456, 1512, 1568, 1624, 1680, 1736, 1792, 1848, 1904, 1960, 2016, 2072, 2128, 2184, 2240]

rebate = [260.0, 218.0, 176.0, 134.0, 92.0, 50.0, 8.0]
但它会强制同等大小的列表。我只想在加完回扣后就不用付工资了。类似的问题有相同的问题;重复较小的列表或仅返回其总和,但受最短列表的限制。我想得到完整的名单


我可以创建一个常规的for循环来构建一个图表,但我正在寻找一种方法来操作两个单独的列表并对其内容求和。也许通过某种方式传递默认大小

我认为您只需要以下功能的
fillvalue

给予

[a + b for a, b in zip_longest(pay, rebate, fillvalue=0)]

我想您只需要以下的
fillvalue
功能:

给予

[a + b for a, b in zip_longest(pay, rebate, fillvalue=0)]

正如@Jacques所说,答案就在zip_。这是您感兴趣的完整代码:

[1380.0, 1394.0, 1408.0, 1422.0, 1436.0, 1450.0, 1464.0, 1512,
 1568, 1624, 1680, 1736, 1792, 1848, 1904, 1960, 2016, 2072,
 2128, 2184, 2240]

正如@Jacques所说,答案就在zip_。这是您感兴趣的完整代码:

[1380.0, 1394.0, 1408.0, 1422.0, 1436.0, 1450.0, 1464.0, 1512,
 1568, 1624, 1680, 1736, 1792, 1848, 1904, 1960, 2016, 2072,
 2128, 2184, 2240]

你的预期输出是什么?你说“因为它们是不同长度的列表,我只想要它…”。什么是“它”?你期望的输出是什么?你说“因为它们是不同长度的列表,我只想要它…”。什么是“它”?啊哈!在以前的尝试中,我键入了fillValue=None,只是觉得我完全弄错了。拼写错误和错误的评估结合在一起,但选择正确。如果允许的话,我会把你的答案标记为正确。谢谢啊哈!在以前的尝试中,我键入了fillValue=None,只是觉得我完全弄错了。拼写错误和错误的评估结合在一起,但选择正确。如果允许的话,我会把你的答案标记为正确。谢谢
from itertools import zip_longest

pay = [1120, 1176, 1232, 1288, 1344, 1400, 1456, 1512, 1568, 1624,
       1680, 1736, 1792, 1848, 1904, 1960, 2016, 2072, 2128, 2184, 2240]
rebate = [260.0, 218.0, 176.0, 134.0, 92.0, 50.0, 8.0]

total = [a + b for a, b in zip_longest(pay, rebate, fillvalue=0)]

print(total)