In quale classe metteresti questi metodi?
In python, posso usare map su liste, tuple, dizionari, file, stringhe, insiemi, matrici, ecc. Non esiste una classe base di raccolta per mettere un map , reduce , filter ecc. on.
Ora, python avrebbe potuto avere una classe di raccolta da cui ereditavano tutte queste diverse cose. Ma sarebbe davvero contro lo "spirito" di Python. In python tutto è anatra battuto a macchina. Le cose funzionano in virtù del fatto che hai i giusti metodi. Puoi utilizzare map , reduce e filter su tutto ciò che definisce __iter__ . Dovendo sottoclasse una classe di raccolta andrebbe contro quella.
Così com'è, map / reduce / filter non sono realmente considerate le soluzioni pythonic.
Invece di map(x, lambda y: y+1) usa [y + 1 for y in x]
Invece di filter(x, lambda y: y % 2 == 0) usa [y for y in x if y % 2 == 0]
Invece di reduce(x, lambda x,y: x+y) usa
sum = 0
for y in x:
sum += y