我有一个结果列表,我需要从中提取各种其他列表。例如,所有车主都是男性,都是5到10岁的车。什么是重构此列表构建代码的最重要的Pythonic方法?
def get_male_owners(self):
results = []
for result in self.results:
if result.owner.sex.male:
results.append(result)
return results
def get_cars_5_to_10(self):
results = []
for result in self.results:
if result.car:
if self.is_5_to_10(result.car):
results.append(result)
return results
def is_5_to_10(self, car):
if car.age <= 10 and car.age >= 5:
return True
else:
return False
的事情是会有很多不同的列表,我需要建立的,但很多在每个列表建筑功能的代码是常见的。在这里以Pythonic的方式实施DRY的最佳方式是什么?谢谢。
没有“最pythonic”的方式。有Pythonic的方式,是的,但除了极其简单的情况外,不是“最pythonic”。例如,列表解析通常被视为Pythonic(在这种情况下),但有时可能太复杂,无法读取,从而使它们变得不合理。 :) – 2011-01-29 10:09:33