【问题标题】:python, functions running from a list and adding to a list through functionspython,从列表中运行并通过函数添加到列表中的函数
【发布时间】:2008-11-03 16:46:57
【问题描述】:

如何在循环中运行一个函数,以便所有结果直接进入一个列表,有没有办法运行一个作用于列表中所有值的函数?

【问题讨论】:

  • 我同意不可输入的名字,你需要澄清,用一个例子
  • @Vinko: 无法键入,但并非不可复制 :)

标签: python function list


【解决方案1】:

有几种方法可以在这样的循环上运行函数 - 您可以使用列表推导

test = list('asdf')
[function(x) for x in test]

并使用该结果

或者你可以使用地图功能

test = list('asdf')
map(function, test)

第一个答案更“pythonic”,而第二个答案更实用。

编辑:第二种方式也快很多,因为它不是运行任意代码来调用函数,而是使用 C 实现的 map 直接调用函数。

【讨论】:

  • 重要提示 - 第二种方式要快得多
【解决方案2】:

您的问题需要澄清。

循环运行函数

new_list= [yourfunction(item) for item in a_sequence]

运行一个作用于列表中所有值的函数

您的函数应该在其代码中具有某种形式的迭代来处理序列的所有项目,例如:

def yourfunction(sequence):
    for item in sequence:
        …

然后您只需使用序列(即列表、字符串、迭代器等)调用它

yourfunction(range(10))
yourfunction("a string")

YMMV.

【讨论】:

    【解决方案3】:

    这个例子展示了如何做(在解释器中运行)

    >>> 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]
    

    【讨论】:

      猜你喜欢
      • 2019-03-26
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2021-12-20
      • 2017-01-16
      相关资源
      最近更新 更多