Xavier Lamorlette

Python : idiomes

Sommaire :

Manipulations de listes

Copier une liste

tata = toto[:]

Retourner une liste (ou une chaine de caractères)

toto[::-1]

Split sur plusieurs caractères

'a;bcd,ef g'.replace(';',' ').replace(',',' ').split()
→ ['a', 'bcd', 'ef', 'g']

Inverser lignes et colonnes

Pour créer des colonnes à partir de lignes, on peut utiliser zip, en faisant attention que zip renvoie des tuples.

lines = ["abc", "123"]
zip(*lines) → ("a", "1"), ("b", "2"), ("c", "3")
columns: list[str] = list(map("".join, zip(*lines)))
→ ["a1", "b2", "c3"]
rows: list[list[int]] = [[10, 11, 12], [20, 21, 22]]
columns: list[list[int]] = list(map(list, zip(*rows)))
→ [[10, 20], [11, 21], [12, 22]]

Mémoisation : @functools.cache

Décorateur de fonction pour ajouter un cache : cela crée un wrapper avec un dictonnaire indexé par la liste des paramètres de la fonction.

Ça ne fonctionne si un des paramètres est une liste car ce n'est pas hashable. La solution est de transformer la liste en tuple, qui est immuable et donc hashable.

La dernière mise à jour de cette page date de janvier 2024.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.