J'ai une liste en Python Par exemple.
names = ["Sam", "Peter", "James", "Julian", "Ann"]
Je veux imprimer le tableau en une seule ligne sans le "[] normal
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)
Donnera la sortie comme;
["Sam", "Peter", "James", "Julian", "Ann"]
Ce n'est pas le format que je veux mais je veux que ce soit comme ça;
Sam, Peter, James, Julian, Ann
Remarque: il doit être sur une seule ligne.
print(', '.join(names))
Ceci, comme cela semble être, prend juste tous les éléments de la liste et les joint avec ', '
.
Voici un simple.
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")
l'étoile décompresse la liste et renvoie chaque élément de la liste.
Solution générale, fonctionne sur des tableaux de non-chaînes:
>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'
Si le tableau en entrée est Type entier , vous devez d’abord convertir le tableau en string type array, puis utiliser la méthode join
pour vous joindre à ,
ou espace comme vous voulez. par exemple:
>>> arr = [1, 2, 4, 3]
>>> print(", " . join(arr))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> sarr = [str(a) for a in arr]
>>> print(", " . join(sarr))
1, 2, 4, 3
>>>
L'utilisation directe de join qui joindra l'entier et la chaîne jettera l'erreur comme indiqué ci-dessus.
Il y a deux réponses, la première est d'utiliser le réglage 'sep'
>>> print(*names, sep = ', ')
L'autre est ci-dessous
>>> print(', '.join(names))
C'est ce dont tu as besoin
", ".join(names)
Vous devez parcourir la liste en boucle et utiliser end=" "
pour la conserver sur une seule ligne.
names = ["Sam", "Peter", "James", "Julian", "Ann"]
index=0
for name in names:
print(names[index], end=", ")
index += 1
','.join(list)
ne fonctionnera que si tous les éléments de la liste sont des chaînes. Si vous souhaitez convertir une liste de nombres en chaînes séparées par des virgules. tels que a = [1, 2, 3, 4]
dans '1,2,3,4'
, vous pouvez soit
str(a)[1:-1] # '1, 2, 3, 4'
ou
str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'
bien que cela ne supprime aucune liste imbriquée.
Pour le reconvertir en liste
a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]
Je ne sais pas si c'est efficace comme d'autres mais la logique simple fonctionne toujours:
import sys
name = ["Sam", "Peter", "James", "Julian", "Ann"]
for i in range(0, len(names)):
sys.stdout.write(names[i])
if i != len(names)-1:
sys.stdout.write(", ")
Sortie:
Sam, Peter, James, Julian, Ann
La fonction suivante prendra une liste et renverra une chaîne d'éléments de la liste. Cela peut ensuite être utilisé à des fins de journalisation ou d'impression.
def listToString(inList):
outString = ''
if len(inList)==1:
outString = outString+str(inList[0])
if len(inList)>1:
outString = outString+str(inList[0])
for items in inList[1:]:
outString = outString+', '+str(items)
return outString