Comment puis-je faire ce format avec Python 3.6 F-String?
person = {'name': 'Jenne', 'age': 23}
print('My name {0[name]} and my age {1[age]}'.format(person, person))
print('My name {0} and my age {1}'.format(person['name'], person['age']))
Eh bien, un devis pour la clé du dictionnaire est nécessaire.
f'My name {person["name"]} and my age {person["age"]}'
En fonction du nombre de contributions que votre dictionnaire apporte à une chaîne donnée, vous pouvez envisager d'utiliser .format(**dict)
à la place pour le rendre plus lisible, même s'il n'a pas l'élégance concise d'une chaîne f.
>>> person = {'name': 'Jenne', 'age': 23}
>>> print('My name is {name} and my age is {age}.'.format(**person))
My name is Jenne and my age is 23.
Bien que cette option soit liée à la situation, vous voudrez peut-être éviter les guillemets et les guillemets doubles.
Les deux instructions ci-dessous fonctionneront à partir de python 3.6.
Veuillez prendre en compte les guillemets simples et doubles dans les déclarations ci-dessus, car une erreur de syntaxe dans l'erreur
Cela fonctionnera.
f'My name {person["name"]} and my age {person["age"]}'
si name
est une propriété de obj
, f'name is {obj[name]}'
, mais pour un dict comme dans cette question, vous pouvez accéder directement à la clé f'name is {person["name"]}'
.
Edit: confondu l’ancienne fonction de format et les nouvelles f-stings. Ajout de clarification.
La chaîne affichée par pkuphy est correcte, vous devez utiliser des guillemets pour accéder au dictionnaire:
f'My name {person["name"]} and my age {person["age"]}'
Votre chaîne d'origine fonctionne pour la fonction str.format()
-:
>>> person = {'name': 'Jenne', 'age': 23}
>>> print('My name is {person[name]} and my age is {person[age]}.'.format(person=person))
My name is Jenne and my age is 23.
La première person
référence toutes les occurrences dans la chaîne de format, la seconde donne la variable à remplir.