Простой способ понять лямбду состоит в том, что она принимает аргумент перед :
, что бы после :
не возвращалось. Например, в приведенном выше коде:
tweets['text'] = list(map(lambda tweet: tweet['text'] if 'extended_tweet' not in tweet else tweet ['extended_tweet']['full_text'], tweets_data))
lambda tweet: tweet['text']
просто принимает dictionary
tweet
и возвращает значение ключа text
И map - это function
, который просто применяет данную функцию к iterable
(list, tuple, et c.) И возвращает iterable
Примечание: Итерация - это то, к чему вы можете обратиться за l oop
Итак, если мы сделаем небольшую функцию для вашего лямбда-выражения lambda tweet: tweet['text'] if 'extended_tweet' not in tweet else tweet ['extended_tweet']['full_text']
, она будет выглядеть следующим образом:
def foo(tweet):
if 'extended_tweet' not in tweet:
return tweet['text']
else:
return tweet ['extended_tweet']['full_text']
Давайте применим это к нашей карте:
map(foo, tweets_data)
Итак, здесь функция foo()
применяется к каждому элементу tweets_data
И функция list
принимает Возвращаемое значение map
по одному и преобразует их в список
Надеюсь, вы найдете объяснение полезным