2009-03-23 4 views
1

J'ai une liste complète de divers bits d'information que je voudrais passer à plusieurs chaînes pour l'inclusion via la nouvelle méthode format chaîne. A titre d'exemple de jouet, définissonsDans Python 2.6, comment transmettre un objet liste à une méthode qui attend une liste d'arguments?

thelist = ['a', 'b', 'c']

Je voudrais faire une déclaration d'impression comme print '{0} {2}'.format(thelist) et print '{1} {2}'.format(thelist)

Quand je cours, je reçois le message IndexError: tuple index out of range; quand il s'agit de déblayer, il prend clairement toute la liste comme un seul objet. Je voudrais, bien sûr, plutôt traduire thelist à 'a', 'b', 'c'.

J'ai essayé d'utiliser un tuple et j'ai reçu la même erreur.

Que sur Terre cette technique particulière s'appelle-t-elle? Si je connaissais le nom, j'aurais pu le chercher. "Expand" n'est clairement pas ça. "Explode" ne donne rien d'utile.

Mon utilisation réelle est beaucoup plus longue et plus fastidieuse que l'exemple du jouet.

Répondre

10

.format(*thelist)

Il fait partie de la syntaxe d'appel en Python. Je ne connais pas non plus le nom, et je ne suis pas convaincu qu'il en possède un. Voir le tutorial.

Cela ne fonctionne pas seulement sur les listes, cependant, cela fonctionne pour n'importe quel objet itérable.

+0

+1: Citez la documentation. –

+0

Je savais que tu aimerais ça. :) –

+0

Je pense que c'est ce qu'on appelle "déballage". – regan

Questions connexes