vu qu'on est en python, pas besoin de reprendre un idiome du C. De manière générale, dès que tu as "range(len(x))", tu sais que tu as quelque chose de moche en python (si tu as vraiment besoin de l'indice, tu peux toujours utiliser enumerate). Et par habitude, "c" c'est plutôt un caractère, du coup le mettre pour représenter une chaîne, ça choque l'œil.
Pour ce qui est de compter, tu as collections.Counter qui te permet d'éviter de vérifier si une clé est déjà dans ton dictionnaire (et d'incrémenter si c'est le cas où de mettre à 1 sinon): avec Counter, tu fais simplement compteur[clé] += 1 et ça marche toujours: si la clé n'est pas présente, elle est considérée valoir 0.
Et enfin, parce que vraiment, on dirait du C ce code, tout le foin avec le buffer etc, ça me parait entièrement inutile. Tu peux parfaitement lire ligne par ligne l'entrée standard:
importfileinputforlineinfileinput.input():
De manière générale, si tu crois que tu as besoin de gérer la mémoire toi-même en Python pour une tâche aussi simple, c'est que tu n'utilises pas les bons outils.
# On dirait du C
Posté par vermillon . En réponse au journal Analyse de texte. Évalué à 10.
ça s'écrit plutôt comme ça:
vu qu'on est en python, pas besoin de reprendre un idiome du C. De manière générale, dès que tu as "range(len(x))", tu sais que tu as quelque chose de moche en python (si tu as vraiment besoin de l'indice, tu peux toujours utiliser enumerate). Et par habitude, "c" c'est plutôt un caractère, du coup le mettre pour représenter une chaîne, ça choque l'œil.
ça s'écrit:
Pas besoin de tampon.
il y a directement une fonction pour ça:
Pour ce qui est de compter, tu as collections.Counter qui te permet d'éviter de vérifier si une clé est déjà dans ton dictionnaire (et d'incrémenter si c'est le cas où de mettre à 1 sinon): avec Counter, tu fais simplement compteur[clé] += 1 et ça marche toujours: si la clé n'est pas présente, elle est considérée valoir 0.
Et enfin, parce que vraiment, on dirait du C ce code, tout le foin avec le buffer etc, ça me parait entièrement inutile. Tu peux parfaitement lire ligne par ligne l'entrée standard:
De manière générale, si tu crois que tu as besoin de gérer la mémoire toi-même en Python pour une tâche aussi simple, c'est que tu n'utilises pas les bons outils.