Ich versuche, in Python reduzieren und 0 bekommen, wenn andere Werte erwartet:Python 3 functools.reduce gibt 0, wenn nicht wörtlich Liste
In [1]: from functools import reduce
In [2]: reduce((lambda x, y: x * y), [1, 2, 3, 4])
Out[2]: 24
In [3]: def multiply(x, y): return x * y
In [4]: reduce(multiply, [1, 2, 3, 4])
Out[4]: 24
In [5]: reduce(multiply, range(5))
Out[5]: 0
In [6]: reduce(multiply, list(range(5)))
Out[6]: 0
[...]
In [11]: L = list(range(5))
In [12]: L
Out[12]: [0, 1, 2, 3, 4]
In [13]: reduce(multiply, L)
Out[13]: 0
Warum ich bin immer 0, wenn nicht eine wörtliche Liste eingeben? Wie kann ich willkürliche Listen reduzieren? Was vermisse ich?
Heman's Antwort ist korrekt, verwenden Sie 'Bereich (1, 5)'. –