Python programación funcional con filter, map y sort
Python programación funcional con filter, map y sort
Algunos ejemplos básicos de python usando: filter, map y sort
Lista de ejemplo
rows = [
{"f1":"1","f2":"12","f3":"13","f4":"14","f5":"15",},
{"f1":"2","f2":"22","f3":"23","f4":"24","f5":"25",},
{"f1":"3","f2":"32","f3":"33","f4":"34","f5":"35",},
{"f1":"4","f2":"42","f3":"43","f4":"44","f5":"45",},
{"f1":"5","f2":"52","f3":"53","f4":"54","f5":"55",},
]
filter(lambda row: ..., rows)
result = filter(lambda row: row.get("f4")=="24" or row.get("f4") == "44", rows)
print(list(result))
# result
[
{'f1': '2', 'f2': '22', 'f3': '23', 'f4': '24', 'f5': '25'},
{'f1': '4', 'f2': '42', 'f3': '43', 'f4': '44', 'f5': '45'}
]
map(lambda row: ..., rows)
result = map(lambda row: {
"col1": row.get("f2"),
"col2": row.get("f5"),
"col3": row.get("f1"),
}, rows)
print(list(result))
# result
[
{'col1': '12', 'col2': '15', 'col3': '1'},
{'col1': '22', 'col2': '25', 'col3': '2'},
{'col1': '32', 'col2': '35', 'col3': '3'},
{'col1': '42', 'col2': '45', 'col3': '4'},
{'col1': '52', 'col2': '55', 'col3': '5'}
]
rows.sort(key=fn)
Esta función no cumple con el paradigma funcional ya que no devuelve una nueva lista sino que la ordena (la modifica). Lo ideal hubiese sido que devuelva una nueva ordenada.
def by_f3(row):
return row.get("f3")
rows.sort(key=by_f3, reverse=True)
print(list(rows))
# result
[
{'f1': '5', 'f2': '52', 'f3': '53', 'f4': '54', 'f5': '55'},
{'f1': '4', 'f2': '42', 'f3': '43', 'f4': '44', 'f5': '45'},
{'f1': '3', 'f2': '32', 'f3': '33', 'f4': '34', 'f5': '35'},
{'f1': '2', 'f2': '22', 'f3': '23', 'f4': '24', 'f5': '25'},
{'f1': '1', 'f2': '12', 'f3': '13', 'f4': '14', 'f5': '15'}
]
Autor: Eduardo A. F.
Publicado: 14-11-2022 21:03