web-dev-qa-db-fra.com

comment faire un format de dictionnaire avec f-string en python 3.6?

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']))
7
Abou Menah

Eh bien, un devis pour la clé du dictionnaire est nécessaire.

f'My name {person["name"]} and my age {person["age"]}'

15
M. Leung

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.

5
Mark Langford

Les deux instructions ci-dessous fonctionneront à partir de python 3.6.

  1. print (f'Mon nom {personne ["nom"]} et mon âge {personne ["âge"]} ')
  2. print (f "Mon nom {personne ['nom']} et mon âge {personne ['age']}") 

Veuillez prendre en compte les guillemets simples et doubles dans les déclarations ci-dessus, car une erreur de syntaxe dans l'erreur

1
Ashwani Singh

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"]}'.

0
pkuphy

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.

0
Christian König