如何在Python列表中计算薪资涨幅并与原薪资相加生成新薪资列表
这里有几种简单的方式实现你的需求,核心思路是直接在列表推导式里完成原薪资与涨幅的相加,不用单独先算涨幅再合并:
方法1:直接计算新薪资(最简洁)
把原薪资单独存成一个变量,然后用n * 1.04直接得到涨薪后的薪资(因为n + 0.04*n等价于n*(1+0.04)):
def employee_salary(): original_salaries = [4100.25, 4025.75, 5200.00, 3330.25, 4420.50, 2900.25, 3210.00, 6322.00, 1125.00, 1460.00] # 直接计算涨薪后的薪资 new_salaries = [n * 1.04 for n in original_salaries] print(new_salaries) employee_salary()
运行后会输出:
[4264.26, 4186.78, 5408.0, 3463.46, 4597.32, 3016.26, 3338.4, 6574.88, 1170.0, 1518.4]
方法2:保留涨幅计算再相加(贴合你当前的思路)
如果你想先算出涨幅,再和原薪资相加,可以用zip函数把原薪资列表和涨幅列表配对,然后逐个相加:
def employee_salary(): original_salaries = [4100.25, 4025.75, 5200.00, 3330.25, 4420.50, 2900.25, 3210.00, 6322.00, 1125.00, 1460.00] salary_increase = [0.04 * n for n in original_salaries] # 配对原薪资和涨幅,逐个相加 new_salaries = [original + increase for original, increase in zip(original_salaries, salary_increase)] print(new_salaries) employee_salary()
这个方法和方法1结果一致,但多了一步存储涨幅的操作,适合需要同时保留涨幅数据的场景。
小提示
把原薪资单独定义成变量original_salaries是个好习惯——如果后续需要修改薪资数据,只需要改这一处,不用在推导式里重复修改,代码更易维护。
内容的提问来源于stack exchange,提问作者shandy068
相关产品推荐
相关产品推荐

