【问题标题】:Apply function to all items in a list Python将函数应用于列表 Python 中的所有项目
【发布时间】:2019-08-28 04:41:31
【问题描述】:

我正在尝试将函数应用于列表。该函数接受一个值并产生另一个值。

例如:

myCoolFunction(75)

会产生新的价值

到目前为止,我正在使用这个:

x = 0
newValues = []

for value in my_list:

    x = x + 1
    newValues.append(myCoolFunction(value))
    print(x)

我正在处理大约 125,000 个值,其运行速度似乎不是很高效。

是否有更 Pythonic 的方式将函数应用于值?

【问题讨论】:

  • 一个列表理解new_values = [myCoolFunction(value) for value in my_list]。也不要在变量名上使用驼峰式大小写,它不是 PEP8 的一部分

标签: python pandas dataframe lambda data-analysis


【解决方案1】:

您可以使用map 方法:

list(map(myCoolFunction, my_list))

这会将定义的函数应用于my_list 的每个值并创建一个地图对象(3.x)。在其上调用 list() 会创建一个新列表。

【讨论】:

    【解决方案2】:

    这个问题被大量标记为Pandas 相关的东西。所以这就是上面提到的pythonic映射和列表理解技术是如何使用Pandas完成的。

    import pandas as pd
    
    def myCoolFunction(i):
        return i+1
    
    my_list = [1,2,3]
    df = pd.DataFrame(index=my_list, data=my_list, columns=['newValue']).apply(myCoolFunction)
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2017-08-23
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多