Python:从列表运行函数并通过函数添加到列表
我想知道怎么把一个函数放在循环里运行,这样所有的结果都能直接放进一个列表里。另外,有没有办法让一个函数对列表里的所有值都进行操作呢?
3 个回答
0
这个例子展示了怎么做(在解释器中运行它)
>>> def square(x):
... return x*x
...
>>> a = [1,2,3,4,5,6,7,8,9]
>>> map(square,a)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
1
你的问题需要更清楚一些。
在循环中运行一个函数
new_list= [yourfunction(item) for item in a_sequence]
对列表中的所有值运行一个函数
你的函数里面应该有某种方式来循环处理一系列的项目,像这样:
def yourfunction(sequence):
for item in sequence:
…
然后你只需要用一个序列(比如一个列表、一个字符串、一个迭代器等等)来调用它。
yourfunction(range(10))
yourfunction("a string")
具体情况可能会有所不同。
8
有几种方法可以让一个函数在循环中运行。你可以使用列表推导式
test = list('asdf')
[function(x) for x in test]
然后用这个结果
或者你可以使用map函数
test = list('asdf')
map(function, test)
第一种方法更符合“Python风格”,而第二种方法则更偏向于函数式编程。
补充一下:第二种方法也快很多,因为它不是通过运行任意代码来调用函数,而是直接使用map
来调用函数,而这个map是用C语言实现的。