【发布时间】:2021-10-08 08:38:34
【问题描述】:
我有一个 Python 代码,我正在尝试使用 Python 函数式编程来减少可能的代码行数:
for t in text_from_file:
separated_text = separate_data(t)
employees.append(Employee(separated_text[1], separated_text[3], separated_text[7], float(separated_text[8])))
for e in employees:
if e.hire_type == "FullTime":
e.monthly_payout = e.salary
elif e.hire_type == "Hourly":
e.monthly_payout = e.salary * 0.5
else:
e.monthly_payout = e.salary * 0.25
for e in employees:
year = datetime.strptime(e.start_date, '%d/%m/%Y').year
if year > 1995:
e.monthly_payout = e.monthly_payout * 0.85
print(f"{e.full_name:<12} | Monthly payout | {e.monthly_payout:<8}")
print("____________________________________")
如何使用 lambda、map、filter 和 reduce 转换这些代码?
【问题讨论】:
-
不确定你在寻找什么 lambdas。但是你可以通过在一个循环中做所有事情而不是循环同样的事情 3 次来减少你当前的例子。
标签: python functional-programming