Le vent s'engouffrait dans l'entrepôt désaffecté, charriant l'odeur de rouille et d'eau stagnante. Sur la table en métal pliante, trois dossiers s'alignaient. Un carton rouge, un bleu, un noir. Chaque structure racontait une histoire différente. Comme en Python. Chaque type de collection a son usage. Sa façon de cacher, d'organiser, de trahir.
Listes
Les listes sont flexibles. Changeantes. Comme des témoins dont on ne peut jamais être sûr.
suspects = ["Le Baron", "La Taupe", "Le Fantôme"]
On peut ajouter, retirer, modifier. L'ordre compte. La position est une information.
suspects.append("L'Inconnu") # Un nouveau venu
suspects.remove("Le Baron") # Un qui disparaît
first_on_scene = suspects[0] # Le premier de la liste
Mais attention : une liste garde tout, dans l'ordre où ça arrive. C'est à la fois sa force et sa faiblesse.
Tuples
Les tuples sont immuables. Figés dans le marbre. Comme un alibi gravé dans le temps.
crime_scene_coordinates = (48.8738, 2.2950)
Une fois créé, on ne peut plus changer. Pas d'ajout, pas de suppression. C'est la garantie que les données n'ont pas été altérées.
# Essayer de modifier déclencherait une erreur
# crime_scene_coordinates[0] = 49.0 # IMPOSSIBLE
Parfait pour les constantes, les identifiants uniques, les choses qui ne doivent jamais bouger.
Dictionnaires
Les dictionnaires, c'est l'intelligence. Une clé, une valeur. Un nom, un secret.
agent_profiles = {
"Vega": {"status": "active", "location": "Prague"},
"Morse": {"status": "burned", "location": "unknown"},
"Kestrel": {"status": "deep_cover", "location": "classified"}
}
On accède par la clé, pas par la position. Comme ouvrir un coffre avec la bonne combinaison.
vega_status = agent_profiles["Vega"]["status"] # "active"
Ajouter, modifier, supprimer des entrées. Le dictionnaire est le carnet d'adresses du métier. Celui qui fait le lien entre un nom et toutes les informations sensibles qui vont avec.
Ensembles (sets)
Les ensembles sont le territoire de l'unicité et du désordre. Pas de doublons. Pas d'ordre défini.
unique_witnesses = {"security_guard", "cleaning_lady", "delivery_guy"}
Parfait pour éliminer les répétitions, pour vérifier l'appartenance.
if "journalist" in unique_witnesses:
expedite_cleanup() # Un témoin gênant qu'on a déjà vu ailleurs
Les ensembles font des opérations rapides : unions, intersections, différences. Des mathématiques du terrain.
all_contacts = safe_contacts | compromised_contacts # Union
common_links = list1 & list2 # Intersection : ceux qui sont dans les deux
Parcours et manipulation des collections
C'est là que la structure prend vie. La façon dont on la traverse révèle l'intention.
Parcourir une liste, chercher quelque chose :
for suspect in suspects:
if alibi_check(suspect) == False:
prime_suspect = suspect
break
Fouiller un dictionnaire pour trouver une correspondance :
for code_name, profile in agent_profiles.items():
if profile["location"] == last_known_location:
person_of_interest = code_name
Manipuler : filtrer, transformer.
# Garder seulement les agents actifs
active_agents = {name: data for name, data in agent_profiles.items() if data["status"] == "active"}
J'ai refermé le dossier noir. À l'intérieur, des photos, des notes, des numéros de compte. Un désorganisé. J'ai tout saisi et j'ai commencé à trier, à catégoriser. Les noms dans une liste (l'ordre chronologique des contacts). Les dates clés dans un tuple (les faits immuables). Les liens entre les personnes dans un dictionnaire (qui connaît qui). Les lieux dans un ensemble (pas de doublons, juste les endroits uniques).
Chaque structure de données a sa philosophie. Sa façon de voir le monde. La liste est souple, accommodante. Le tuple est rigide, fiable. Le dictionnaire est intelligent, relationnel. L'ensemble est pur, mathématique.
Savoir laquelle utiliser, c'est comme choisir son arme. On ne prend pas un fusil à pompe pour un travail de précision. On ne prend pas un tuple quand on a besoin de flexibilité. Le bon outil pour la bonne opération. C'est ce qui sépare l'amateur du professionnel.
Et dans ce métier, les amateurs ne font pas de vieux os.
Ranger le chaos, trouver l'ordre caché.