Почему лямбда не работает должным образом при работе с последовательностью? - PullRequest
0 голосов
/ 24 апреля 2019

Похоже, лямбда не работает, когда я пытаюсь вернуть из нее кортеж, состоящий из 2 символов, каждый из которых является min () их списков. Нормальные функции, кажется, работают должным образом, так что это ограничение использования лямбд, или я что-то упустил глупо? Использование list () или tuple () возвращает ошибку.

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)))

1 Ответ

1 голос
/ 24 апреля 2019

Просто вызовите функцию !

(lambda x,y: (min(x), min(y)))(data, randnums)

Точно так же, как вы бы назвали get_min(data, randnums). Функция, открывающая скобка, аргументы, закрывающая скобка, но с (lambda x,y: (min(x), min(y))) в качестве функции вместо get_min.

...