gpt4 book ai didi

python - 在Python中访问元组迭代列表中特定索引的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:28 24 4
gpt4 key购买 nike

我有一些代码,旨在计算给定数字的应付税款(澳大利亚)。我有一个包含税级和适用税率的元组列表:

rates = [(18200,0.19),(37000,0.325),(90000,0.37),(180000,0.45),(99999999999,0.45)]

然后我有一个方法,可以输入收入金额并计算适用的税费。

    def calc_tax(self,income):
tax_payable = 0
for i,(bracket,rate) in enumerate(self.rates):
if income >= bracket:
amt_above_brkt = min(income - bracket,self.rates[i+1][0] - bracket)
tax_payable += amt_above_brkt * rate
print(tax_payable)

该功能有效,它给了我正确的税款,没有任何问题。我不喜欢的是函数内的 self.rates[i+1][0] 调用来获取税级的上限(下一个索引)。

是否有更好的方法使用枚举和解包元组来执行此操作?

最佳答案

如果将上限和下限压缩在一起,它会变得更具可读性,并且您不再需要 i:

def calc_tax(income):
tax_payable = 0
rate_bounds, rate_list = zip(*rates)
for rate, lo, up in zip(rate_list[:-1],
rate_bounds[:-1],
rate_bounds[1:]):
if income >= lo:
amt_above_brkt = min(income - lo, up - lo)
tax_payable += amt_above_brkt * rate
print(tax_payable)

关于python - 在Python中访问元组迭代列表中特定索引的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58899403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com