Поскольку some_method
работает с побочными эффектами (то есть изменяет входные данные temp_list
), вы не должны использовать map
для этого; ваш for
l oop - разумный способ написать этот код. map
не следует использовать для побочных эффектов, а использование функций более высокого порядка не означает автоматически, что ваш код лучше.
Тем не менее, если some_method
работает, добавляя некоторые элементы к temp_list
и не изменяет остальное его содержимое, вы можете выполнить рефакторинг так, чтобы some_method
давал эти элементы вместо добавления их. Тогда outer_method
может быть реализован следующим образом:
def outer_method(self, list_of_dict):
return list(chain.from_iterable(map(self.some_method, list_of_dict)))
Где some_method
принимает в качестве аргумента один словарь, а chain
импортируется из модуля itertools
.