Я изучаю курс Python, мы работаем над лямбда-выражениями, и я застрял при попытке передать две переменные. Учти это:
lis = ['today', 'is', 'a', 'nice', 'day']
print(list(map(lambda x: x.find('i'), lis)))
output:
[-1, 0, -1, 1, -1]
Однако это возвращает только -1:
s = 'today is a nice day'
def find_char(sentence, string):
sentence = sentence.split()
return list(map(lambda x, y: print(x), sentence, string))
print(find_char(s, 'i'))
Лямбда-функция передает только первое слово сегодня, а не каждое слово. Почему это происходит и как я могу заставить функцию возвращать тот же список, что и первый метод с использованием лямбда?
Спасибо.
Понятно, я добавил строку * = len (предложение), и она работает как положено. Спасибо за помощь.





Когда вы передаете
mapнесколько итераций, каждая итерация повторяется и передается функции до тех пор, пока не будет исчерпана самая короткая из них. В вашем случае вторая итерация (string) имеет длину всего 1 символ. Таким образом, функции будет передано только первое значение из каждой итерации.