Saya menggunakan Python 3.2. Mencoba ini:
xor = lambda x,y: (x+y)%2
l = reduce(xor, [1,2,3,4])
Dan mendapat kesalahan berikut:
l = reduce(xor, [1,2,3,4])
NameError: name 'reduce' is not defined
Mencoba mencetak reduce
ke konsol interaktif - mendapat kesalahan ini:
NameError: name 'reduce' is not defined
Apakah reduce
benar-benar dihapus dengan Python 3.2? Jika itu masalahnya, apa alternatifnya?
python
reduce
python-3.2
Sergey
sumber
sumber
Jawaban:
Pindah ke
functools
.sumber
sum(item['key'] for item in list_of_dicts)
.Anda dapat menambahkan
sebelum Anda menggunakan mengurangi.
sumber
Atau jika Anda menggunakan enam perpustakaan
sumber
Dalam hal ini saya percaya bahwa yang berikut ini setara:
Satu-satunya masalah dengan ini adalah ia menciptakan angka besar, tetapi mungkin itu lebih baik daripada operasi modulo berulang?
sumber