我想len在向量中的每个元素上应用一个函数().在RI中可以很容易地做到这一点sapply(cities,char).在没有编写循环的情况下,Python中是否有这样的替代方案?
War*_*zee 13
语法是map(function, list).
例:
map(len, [ [ 1,2,3], [4,5,6] ])
Run Code Online (Sandbox Code Playgroud)
输出:
[ 3, 3 ]
Run Code Online (Sandbox Code Playgroud)
将R sapply()可以用一个列表理解来代替,但很公平的列表理解并不严格避免书写一个的循环。
除了map()您应该看一下Pandas之外,它还提供了Python替代人在R中使用的某些功能的方法。
import pandas as pd
vector = [1,2,3,4,5]
square_vector = pd.Series(vector).apply(lambda x: x**2)
print square_vector.tolist()
Run Code Online (Sandbox Code Playgroud)
上面的代码将产生一个新的列表,其中包含输入的平方值:
[1, 4, 9, 16, 25]
Run Code Online (Sandbox Code Playgroud)
在这里,我将向量传递给系列构造函数,pd.Series(vector)并应用了匿名函数apply(lambda x: x**2)。输出是一个熊猫系列,可以根据需要转换回列表tolist()。Pandas系列具有很多功能,是许多数据处理和分析任务的理想选择。