如何在Python中遍历含元组的disbursements列表并提取整数求和?
解决方案:从元组列表中提取金额求和
你只需要修改sum(disbursements)这部分,改用生成器表达式遍历每个元组,提取第一个元素(整数金额)再求和即可。
修改后的完整代码如下:
from datetime import datetime # 需导入datetime模块才能使用strptime方法 def loan(principal, interest_rate): disbursements = [(2000, datetime.strptime('01-12-22', '%d-%m-%y')), (1000, datetime.strptime('01-12-22', '%d-%m-%y'))] # 遍历元组列表,提取每个元组的第一个元素(金额)后求和 total_loan = principal + sum(d[0] for d in disbursements) print(f"Total loan amount is {total_loan} EUR.") payback = int(total_loan + (total_loan * (interest_rate / 100))) print(f"Total amount to pay back is {payback} EUR.") principal = 10000 interest_rate = 10 loan(principal, interest_rate)
关键说明
- 每个元组的第一个位置是目标整数金额,用
d[0]即可获取对应值 - 生成器表达式
(d[0] for d in disbursements)会逐个遍历列表内的元组,提取金额后直接传入sum()计算总和 - 必须导入
datetime模块,否则datetime.strptime方法会报错
内容的提问来源于stack exchange,提问作者Daniel G
相关产品推荐
相关产品推荐

