Używam Python 3.2. Próbowałem tego:
xor = lambda x,y: (x+y)%2
l = reduce(xor, [1,2,3,4])
I wystąpił następujący błąd:
l = reduce(xor, [1,2,3,4])
NameError: name 'reduce' is not defined
Próbowałem wydrukować reduce
na interaktywnej konsoli - otrzymałem ten błąd:
NameError: name 'reduce' is not defined
Czy reduce
naprawdę jest usunięty w Pythonie 3.2? Jeśli tak jest, jaka jest alternatywa?
python
reduce
python-3.2
Siergiej
źródło
źródło
Odpowiedzi:
Został przeniesiony do
functools
.źródło
sum(item['key'] for item in list_of_dicts)
.Możesz dodać
przed użyciem zmniejsz.
źródło
Lub jeśli korzystasz z biblioteki sześciu
źródło
W tym przypadku uważam, że następujące jest równoważne:
Jedynym problemem jest to, że tworzy duże liczby, ale może to jest lepsze niż powtarzane operacje modulo?
źródło