3 votes

Concaténer les clés d'un dictionnaire en une chaîne de caractères

J'ai 14 dictionnaires qui contiennent tous les mêmes clés d'information (c'est-à-dire l'heure, la date, etc.), mais des valeurs différentes. J'essaie de créer une fonction qui assemblera une phrase lorsque le dictionnaire est listé en tant qu'argument dans la fonction.

Si j'ai un dictionnaire :

dic1 = {'Name': 'John', 'Time': 'morning'}

Et je veux les concaténer en une chaîne de caractères :

print 'Hello ' + dic1['Name']+', good ' + dic1['Time']+ '.'

Comment procéder ?

*Note, désolé, ceci renvoie l'erreur :

TypeError: can only concatenate list (not "str") to list

6voto

kojiro Points 24374

Je pense que vous voulez dire interpoler , pas concaténer .

print "Hello %(Name)s, good %(Time)s" % dic1

2voto

mgilson Points 92954

Utilisation du nouveau style de formatage des chaînes de caractères (python2.6 ou plus récent) :

print("Hello {Name}, good {Time}.".format(**dic1))

Quant à votre erreur, je ne peux pas l'expliquer avec le code que vous avez fourni ci-dessus. Si vous essayez de __add__ une chaîne à une liste, vous obtiendrez cette erreur :

>>> [45,3] + "foo"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list

Mais l'ajout d'une liste à une chaîne de caractères (ce que vous feriez avec le code de l'exemple si votre dictionnaire avait une liste comme valeur) donne une erreur légèrement différente :

>>> "foo" + [45,3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'list' objects

-1voto

Taimoor Changaiz Points 892
web_response = {2L: 67.0, 3L: 13.67, 4L: 10.25, 5L: 11.8, 6L: 11.83}

J'ai un dictionnaire nommé "web_response", pour la concaténation de dictionnaire avec chaîne de caractères J'ai utilisé virgule ","

print "web_response=", web_response

Sortie :

web_response= {2L: 67.0, 3L: 13.67, 4L: 10.25, 5L: 11.8, 6L: 11.83}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X