Очень наглядный пример использования lambda с методами списков в Python
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>>
>>> print filter(lambda x: x % 3 == 0, foo)
>>>
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64] |
>>>
>>> print reduce(lambda x, y: x + y, foo)
>>> digit = [1, 2, 3]>>> >>> print [(lambda x: x * x)(x) for x in digit)]или лучше
>>> print [x * x for x in digit]Еще интересный пример (вырезать в строке лишние дефисы)
>>> line = 'I—like—python'
>>> print '-'.join(filter(lambda x: x != '', line.split('-')))
Объяснение:
>>> line.split('-')
['I', '', '', 'like', '', 'python']
>>> filter(lambda x: x != '', line.split('-'))
['I', 'like', 'python']
Пример в котором нужно вывести список с НЕ уникальными значениями
Неудачное решение:
>>> lst = [10, 9, 10, 10, 9, 8]
>>> out_lst = []
>>> for i in range(len(lst)):
>>> x = lst.pop(i)
>>> if x in lst:
>>> out_lst.append(x)
>>> lst.insert(i, x)
>>> print out_lst
Лучшее решение:
>>> print (lambda d:[x for x in d if d.count(x)>1])(lst)
Автор: Viktor