Considérez ceci Python code pour imprimer une liste de valeurs séparées par des virgules
for element in list:
print element + ",",
Quelle est la méthode préférée pour l'impression de sorte qu'une virgule n'apparaisse pas si element
est le dernier élément de la liste.
ex
a = [1, 2, 3]
for element in a
print str(element) +",",
output
1,2,3,
desired
1,2,3
>>> ','.join(map(str,a))
'1,2,3'
Un ','.join
Comme suggéré dans d'autres réponses est la solution typique Python; l'approche normale, que je ne vois pas particulièrement dans aucune des réponses jusqu'à présent, est
print ','.join(str(x) for x in a)
connu comme une expression de générateur ou genexp.
Si vous préférez une boucle (ou en avez besoin à d'autres fins, si vous faites plus que simplement imprimer sur chaque élément, par exemple), il existe bien sûr également d'excellentes alternatives:
for i, x in enumerate(a):
if i: print ',' + str(x),
else: print str(x),
c'est un premier commutateur (fonctionne pour tout a itérable, qu'il s'agisse d'une liste ou autre), il place donc la virgule avant chaque élément sauf le premier. Un dernier interrupteur est un peu moins élégant et ne fonctionne que pour les itérables qui ont une len()
(pas pour les complètement généraux):
for i, x in enumerate(a):
if i == len(a) - 1: print str(x)
else: print str(x) + ',',
cet exemple tire également parti du dernier commutateur pour terminer la ligne lors de l'impression du tout dernier élément.
La fonction intégrée énumérer est très souvent utile et mérite d'être gardée à l'esprit!
Il y a deux options,
Vous pouvez imprimer directement la réponse en utilisant print(*a, sep=',')
ceci utilisera le séparateur comme "," vous obtiendrez la réponse comme,
1,2,3
et une autre option est,
print(','.join(str(x) for x in list(a)))
cela va parcourir la liste et imprimer le (a) et imprimer la sortie comme
1,2,3
C'est à cela que sert join
.
','.join([str(elem) for elem in a])
print ','.join(a)