【问题标题】:Functional way of inserting elements into a list将元素插入列表的功能方式
【发布时间】:2018-07-04 06:26:46
【问题描述】:

在 Python 中,写成[f(i) for i in range(n)] 通常很简洁。我想知道是否有办法做类似[A.append(f(i)) for i in range(n)][A.insert(g(i),f(i)) for i in range(n)] 的事情。

【问题讨论】:

  • 它并不“总是整洁”,事实上大多数时候它有点脏
  • 文档特别不鼓励使用列表推导来解决副作用。只需编写 for 循环即可。
  • 如果你使用.append,或者.insert,那么你无论如何都没有使用函数式编程......

标签: python functional-programming coding-style


【解决方案1】:

[A.append(f(i)) for i in range(n)] 真的很不优雅,因为它会让读者混淆你想要做什么。

[A.append(f(i)) for i in range(n)] 最好写成

A.extend([f(i) for i in range(10)])

[A.insert(g(i),f(i)) for i in range(n)] 写成这样会更好看,更容易理解

for i in range(n):
    A.insert(g(i),f(i))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多