python - 多参数Python映射

标签 python python-3.x python-itertools

我有这样的场景:我有一个方法 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),因此您不应为此使用 mapfor 循环是编写此代码的明智方法。 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 将单个字典作为其参数,并且 chainitertools 模块导入。

关于python - 多参数Python映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59855572/

相关文章:

python - 工作副本 checkin 时出现运行时错误(超出最大递归深度)

python - 在 Azure Python API 中以编程方式重命名资源组

python - 在Python3中逐一读取列表的元素

Python 3 C扩展导入时出现段错误

python - python中的高效列表映射

python - 使用 for 和 while 循环对列表中的每个第 n 个范围进行切片

python - 解析Python Cmd模块中的参数

python-3.x - 在 Python 3 中将十进制数转换为二进制数

Python - 使用输出数组索引约束创建排列

python - 我怎样才能得到字符串的所有可能的 "leet"版本(带有可选替换)?