为什么 lambda 在处理序列时不能正常工作?
Why doesn't lambda work properly when dealing with a sequence?
当我尝试从 Lambda 中 return 一个由 2 个字符组成的元组时,Lambda 似乎不起作用,每个字符都是其列表的 min() 。不过,普通函数似乎可以正常工作,所以这是使用 lambda 的限制,还是我遗漏了一些愚蠢的东西?使用 list() 或 tuple() returns 一个错误。
import random
randnums = [random.randrange(2, num+3) for num in range(10)]
data = list(range(10))
def get_min(x,y):
return (min(x), min(y))
print(get_min(data, randnums))
print(list(map(lambda x,y: (min(x), min(y)), data, randnums)))
只需调用函数!
(lambda x,y: (min(x), min(y)))(data, randnums)
这与您调用 get_min(data, randnums)
的方式完全相同。函数、左括号、参数、右括号,但使用 (lambda x,y: (min(x), min(y)))
作为函数而不是 get_min
.
当我尝试从 Lambda 中 return 一个由 2 个字符组成的元组时,Lambda 似乎不起作用,每个字符都是其列表的 min() 。不过,普通函数似乎可以正常工作,所以这是使用 lambda 的限制,还是我遗漏了一些愚蠢的东西?使用 list() 或 tuple() returns 一个错误。
import random
randnums = [random.randrange(2, num+3) for num in range(10)]
data = list(range(10))
def get_min(x,y):
return (min(x), min(y))
print(get_min(data, randnums))
print(list(map(lambda x,y: (min(x), min(y)), data, randnums)))
只需调用函数!
(lambda x,y: (min(x), min(y)))(data, randnums)
这与您调用 get_min(data, randnums)
的方式完全相同。函数、左括号、参数、右括号,但使用 (lambda x,y: (min(x), min(y)))
作为函数而不是 get_min
.