我有这样的场景:我有一个方法 some_method(x, y) ,它需要两个参数。第一个参数是一个列表 temp_list
,而第二个参数是一个字典列表 list_of_dict
。
我有以下内容:
def outer_method(self, list_of_dict):
temp_list = []
for x in list_of_dict:
self.some_method(temp_list, x)
return temp_list
但是我想知道如何使用python的map函数让代码看起来更精致。
最佳答案
由于 some_method
会产生副作用(即它会改变输入 temp_list
),因此您不应为此使用 map
; for
循环是编写此代码的明智方法。 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
模块导入。
关于python - 多参数Python映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59855572/