我可以用什么其他方法代替'lambda'
def calculate_fees(self):
return sum(map(lambda x: x.fee, self.bookings.values()))
def calculate_donations(self):
return sum(map(lambda x: x.donation, self.bookings.values()))
def __str__(self):
output = 'Event: {0} {1} {2}\n'.format(self.event_id, self.event_date, self.venue) + \
'Miles: {0}\n'.format(self.miles) + \
'Max Places: {0}\n'.format(self.max_places) + \
'Basic Fee: £{0}'.format(self.basic_fee)
if self.bookings:
output += '\nRunners:\n' + \
'\n'.join(map(lambda x: '{0} {1}'.format(x.runner_id, x.club_id), self.bookings.values()))
return output
Run Code Online (Sandbox Code Playgroud)
小智 6
第一次出现lambda可以用发电机代替:
return sum(x.fee for x in self.bookings.values())
Run Code Online (Sandbox Code Playgroud)
类似于第二个:
return sum(x.donation for x in self.bookings.values())
Run Code Online (Sandbox Code Playgroud)
第三:
'\n'.join('{0} {1}'.format(x.runner_id, x.club_id) for x in self.bookings.values())
Run Code Online (Sandbox Code Playgroud)
既然sum并且string.join可以处理生成器,您可以直接使用生成器表达式作为这些函数的参数.
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |