Python 列表理解错误中的lambda
我正在做以下工作:Python 列表理解错误中的lambda,python,python-2.7,Python,Python 2.7,我正在做以下工作: ll = [-8, -4, 0, 4, 8] [lambda x: x**2 for x in ll] 并获得以下错误: [<function __main__.<listcomp>.<lambda>>, <function __main__.<listcomp>.<lambda>>, <function __main__.<listcomp>.<lambda>>
ll = [-8, -4, 0, 4, 8]
[lambda x: x**2 for x in ll]
并获得以下错误:
[<function __main__.<listcomp>.<lambda>>,
<function __main__.<listcomp>.<lambda>>,
<function __main__.<listcomp>.<lambda>>,
<function __main__.<listcomp>.<lambda>>,
<function __main__.<listcomp>.<lambda>>]
lambda返回一个函数,它不计算该函数,您可能需要:
ll = [-8, -4, 0, 4, 8]
[x**2 for x in ll]
或
它等于:
ll = [-8, -4, 0, 4, 8]
def f(x):
return x**2
[f(x) for x in ll]
lambda返回一个函数,它不计算该函数,您可能需要:
ll = [-8, -4, 0, 4, 8]
[x**2 for x in ll]
或
它等于:
ll = [-8, -4, 0, 4, 8]
def f(x):
return x**2
[f(x) for x in ll]
你没有说清楚你期望什么,但我建议:
ll = [-8, -4, 0, 4, 8]
f = lambda x: x**2
print([f(x) for x in ll])
你没有说清楚你期望什么,但我建议:
ll = [-8, -4, 0, 4, 8]
f = lambda x: x**2
print([f(x) for x in ll])
为了获得列表中的数字平方,不需要lambda表达式。你应该做:
>>> [x**2 for x in ll]
[64, 16, 0, 16, 64]
在您的使用中,这不是一个错误。您正在列表中看到对lambda函数的引用(因为您没有调用该函数)。为了使其正常工作,您可以执行以下操作:
>>> ll = [-8, -4, 0, 4, 8]
>>> f = lambda x: x**2
>>> [f(x) for x in ll]
[64, 16, 0, 16, 64]
这相当于:
>>> [(lambda x: x**2)(x) for x in ll]
[64, 16, 0, 16, 64]
注意:此处根本不需要Lambda为了获得列表中的数字平方,不需要Lambda表达式。你应该做:
>>> [x**2 for x in ll]
[64, 16, 0, 16, 64]
在您的使用中,这不是一个错误。您正在列表中看到对lambda函数的引用(因为您没有调用该函数)。为了使其正常工作,您可以执行以下操作:
>>> ll = [-8, -4, 0, 4, 8]
>>> f = lambda x: x**2
>>> [f(x) for x in ll]
[64, 16, 0, 16, 64]
这相当于:
>>> [(lambda x: x**2)(x) for x in ll]
[64, 16, 0, 16, 64]
注意:此处根本不需要Lambda您忘记调用
Lambda
。下面是一种按顺序执行的方法:
ll = [-8, -4, 0, 4, 8]
print([(lambda x: x**2)(x) for x in ll])
您忘记调用
lambda
。下面是一种按顺序执行的方法:
ll = [-8, -4, 0, 4, 8]
print([(lambda x: x**2)(x) for x in ll])
这不是一个错误。列表中有5个lambda表达式。你以为会是什么?这不是错误。列表中有5个lambda表达式。你期待什么呢?谢谢Pawel和@Moinuddin的回复。所以我现在理解的是[lambda x:x**2 for x in ll]将返回一个包含对5个函数的引用的列表。我希望它将返回一个函数对象,并且该函数将应用于列表“ll”的元素。感谢Pawel和@Moinuddin的回复。所以我现在理解的是[lambda x:x**2 for x in ll]将返回一个包含对5个函数的引用的列表。我期望它将返回一个函数对象,并且该函数将应用于列表“ll”的元素。