Python:列表x的每个元素使用的函数vs将列表x作为arg的函数

时间:2017-08-14 21:50:15

标签: python function list-comprehension

有没有理由选择一种风格而不是另一种风格? 例如:

def add_10(x):
    return x + 10

results = [add_10(i) for i in range(5)]

VS

def add_10(list_):
   return [e + 10 for e in list_]

results = add_10(range(5))

这是一个基本的例子,但它说明了这个想法。我最近一直在使用前者,因为我只是喜欢用简单的输入和输出编写函数(不是列表很复杂),但我不知道除了个人风格之外是否还有真正的专业人士或者其他人。我在文档和其他人的代码中看到了后者的更多内容,但我找不到任何能够解决这个特定想法的资源。

由于

1 个答案:

答案 0 :(得分:0)

第一个版本更通用,它可以与任何类型的数据结构中的值一起使用(或者不在任何结构中,只是单个变量)。例如,如果你有一本字典,你可以用它来创建一个新的字典,其中所有的元素都增加了10个。或者你可以写:

input_plus_10 = add_10(int(input("Please enter a number")))

第二个版本更具体,它只能与列表一起使用。如果这是你唯一需要的东西,那就没关系(但你应该把它命名为list_add_10)。