Python:从列表运行函数并通过函数添加到列表

-1 投票
3 回答
3143 浏览
提问于 2025-04-11 18:15

我想知道怎么把一个函数放在循环里运行,这样所有的结果都能直接放进一个列表里。另外,有没有办法让一个函数对列表里的所有值都进行操作呢?

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语言实现的。

撰写回答