Il y a un rituel sacré que tout programmeur doit accomplir au moins une fois dans sa vie : écrire un one-liner absolument illisible mais fonctionnel avec une logique complexe à l'intérieur. Non pas parce qu'il le faut, mais parce que tu peux.
Un gars sur Reddit voulait analyser les recettes de Minecraft vanilla et voici ce qui est arrivé :
out2in = {k: ([("#" + x["tag"] if x.get("tag") else x["item"]) if x.class.name == "dict" else [("#" + y["tag"] if y.get("tag") else y["item"]) for y in x] for x in v]) for (k, v) in {(y["result"]["item"] if y["result"].class.name == "dict" else y["result"]): ((y["ingredients"] if y["ingredients"].class.name == "list" else ([y["ingredients"]]) if y.get("ingredients") else y["ingredient"]) if y.get("ingredients") else [z for z in y["key"].values()]) for y in filter(lambda x: x.get("result") and (x.get("ingredients") or x.get("key")), [json.load(open(x, "rt")) for x in Path("recipes").glob("*.json")])}.items()}Que voyons-nous ici ? Le Zen de Python qui est sorti fumer une cigarette et n'est jamais revenu. Dans un seul flacon sont mélangés :
- Des dict comprehensions imbriqués
- Des list comprehensions imbriqués
- Des opérateurs ternaires comme logique principale
- filter avec une fonction lambda
- Et tout cela pour analyser du JSON de structure différente.
L'auteur a honnêtement admis : "this took ages to debug..." (le débogage a pris une éternité). Et il l'a fait, je cite : "just because i can(and am bored)" (juste parce que je peux (et que je m'ennuyais)).
Une œuvre d'art qui devrait être encadrée avec la légende "NE FAITES JAMAIS CELA".
#code_du_fumeur
Commentaires
0Aucun commentaire pour le moment.
Connectez-vous pour participer à la discussion.