Un ','.join
come suggerito in altre risposte è la soluzione tipica Python; l'approccio normale, che tipicamente non vedo in nessuna delle risposte finora, è
print ','.join(str(x) for x in a)
conosciuto come un generatore di espressione o genexp.
Se si preferisce un loop (o bisogno di uno per altri scopi, se si sta facendo più di una semplice stampa su ciascuna voce, per esempio), ci sono naturalmente anche ottime alternative:
for i, x in enumerate(a):
if i: print ',' + str(x),
else: print str(x),
questo è un interruttore per la prima volta (funziona per qualsiasi iterable a, se un elenco o altro) quindi colloca la virgola prima di ogni elemento tranne il primo. Un interruttore ultima volta è leggermente meno elegante e funziona solo per iterables aventi un len()
(quelli non per tutto generale):
for i, x in enumerate(a):
if i == len(a) - 1: print str(x)
else: print str(x) + ',',
questo esempio sfrutta anche l'interruttore dell'ultimo tempo per terminare la linea quando sta stampando l'ultimo oggetto.
La funzione integrata enumerate è molto utile e vale la pena tenerla a mente!
fonte
2010-03-08 03:42:18
Eventuali duplicati di [Come si dovrebbe fare un separato da virgole stringa da un elenco?] (http://stackoverflow.com/questions/44778/how-would-you-make-a-comma-separated-string-from-a-list) – manetsus