次のコードに出くわしました。正常に動作していますが、クロージャーでさえないので奇妙に思えます。パフォーマンスやベストプラクティスの観点からコーディングするのが正しい方法なのか、それともすべてそうすべきなのか疑問に思っています内部にすべてのロジックがある通常の for ループに置き換えられましたか?
mylist = [
{'one': 20,
'two': 4},
{'one': -6,
'two': 64},
{'one': 18,
'two': 1},
{'one': 16,
'two': 100},
# ...
]
def business_function(a_list):
def compute_function(row):
"""
suppose some more complex computations + appending extra values
than this dummy example
"""
row['total'] = row['one'] + row['two']
return row
def filter_function(item):
"""
suppose some complex logic here
"""
return item['one'] > 5
# suppose there is some code here ...
filtered_list = [compute_function(item) for item in a_list if filter_function(item)]
# and some more code here ...
return filtered_list
print business_function(mylist)