Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Classe « str » Python 3.12.1

Méthode builtins.str.format_map

Signature de la méthode format_map

 def format_map(self, dictionnary)) -> str

Description

Permet de formater une chaîne de caractères, un peu comme la méthode format mais en utilisant un dictionnaire comme source de données. Les zones d'injections (placeholder en anglais) sont matérialisées par une paire d'accolades. En précisant le nom de la clé dans chaque zone d'injection, on lie la donnée associée.

>>> data = {"num": 1, "den": 3}
>>> "[{num}/{den}]".format_map(data)
'[1/3]'
>>>

Il est aussi possible de spécifier un format pour chaque zone d'injection (placeholder). Le format du paramètre s'introduit par un caractère : placé à l'intérieur des accolades. A la suite de ce caractère, on trouve la définition du format. Je vous renvoie vers la documentation de la méthode format pour de plus amples informations.

help(str.format_map)

S.format_map(mapping) -> str

Return a formatted version of S, using substitutions from mapping.
The substitutions are identified by braces ('{' and '}').

Paramètres

ParamètreDescription
 self : str 
La chaîne de caractères courante. Rappel : self est implicitement passée lors de l'appel de la méthode.
 dictionnary : dict 
Le dictionnaire contenant les données à injecter et à formater.

Valeur de retour

La valeur de retour est de type str.

Elle correspond à la chaîne de caractères formatée.

Exception

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
#!/usr/bin/python3

# Une liste de données à afficher sur la console.
spies = [
    {"first_name": "James", "last_name": "Bond", "email": "007@mi6.uk"},
    {"first_name": "Jason", "last_name": "Bourne", "email": "treadstone@cia.us"},
    {"first_name": "Ethan", "last_name": "Hunt", "email": "hunt@imf.us"}
]

# Quelques variables préalables.
line = "-" * 25
separator = "+{:s}+{:s}+{:s}+".format(line, line, line)

# On affiche la liste.
print(separator)
print("| {:23s} | {:23s} | {:>23s} |".format("Prénom", "Nom", "Email"))
print(separator)
for spy in spies:
    print("| {first_name:23s} | {last_name:23s} | {email:>23s} |".format_map(spy))
print(separator)
Exemple d'utilisation de la méthode format_map.

Et voici les résultats produits par cet exemple.

$> python3 sample.py
+-------------------------+-------------------------+-------------------------+
| Prénom                  | Nom                     |                   Email |
+-------------------------+-------------------------+-------------------------+
| James                   | Bond                    |              007@mi6.uk |
| Jason                   | Bourne                  |       treadstone@cia.us |
| Ethan                   | Hunt                    |             hunt@imf.us |
+-------------------------+-------------------------+-------------------------+
$> 

Voir aussi

Classe str
Méthode str.format