Python:使用带多个值的参数评估函数

时间:2018-09-11 14:46:03

标签: python arguments

假设我在python中有一个函数,该函数返回其输入2的幂

def f(x):
    return x**2

假设我还有一个整数1,2,3,4,5的向量

I = asarray(list(range(1,6)))

现在,我想使用来自f的所有输入来评估函数I,结果应该在尺寸为5的向量中(Python中为1x5数组)。我的期望结果是:[1,4,9,16,25]

是否可以使用for或其他任何循环获得此结果?

我使用了array软件包

2 个答案:

答案 0 :(得分:4)

直接从pythontips网站...

使用map函数!

squared = list(map(lambda x: x**2, I))

如果要在map函数中使用函数,只需执行squared = list(map(f, I))

答案 1 :(得分:3)

通常有两种经典方法将函数应用于可迭代对象的所有元素并将结果存储在列表中。较灵活的是list comprehension

result = [f(x) for x in range(1, 6)]  # the upper bound is exclusive!

另一个选项是map,它允许使用更简洁的符号,特别是如果您有可用的命名函数并且不需要使用lambda之类的话:

result = map(f, range(1, 6))        # Python2: returns list
result = list(map(f, range(1, 6)))  # Python3: return iterator, so cast