it-swarm.com.de

Liste ohne Klammern in einer Zeile drucken

Ich habe eine Liste in Python

names = ["Sam", "Peter", "James", "Julian", "Ann"]

Ich möchte das Array in einer einzigen Zeile ohne das normale "[] drucken.

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)

Gibt die Ausgabe als;

["Sam", "Peter", "James", "Julian", "Ann"]

Das ist nicht das Format, das ich will, stattdessen möchte ich, dass es so ist;

Sam, Peter, James, Julian, Ann

Hinweis: Es muss sich in einer einzelnen Zeile befinden.

109
Isuru
print(', '.join(names))

Wie es klingt, nimmt es einfach alle Elemente der Liste und fügt sie mit ', ' zusammen.

166
FatalError

Hier ist eine einfache. 

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")

der Stern entpackt die Liste und gibt jedes Element in der Liste zurück. 

50
Jianru Shi

Allgemeine Lösung, arbeitet mit Arrays von Nicht-Strings:

>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'
34
Steve Bennett

Wenn das Eingabe-Array Integer-Typ ist, müssen Sie das Array zuerst in das Array String-Typ konvertieren und dann die join-Methode zum Verbinden mit , oder space verwenden, was immer Sie möchten. z.B:

>>> 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
>>>

Die direkte Verwendung eines Joins, der die Ganzzahl und den String verbindet, wirft einen Fehler wie oben gezeigt aus.

17
krishna Prasad

Es gibt zwei Antworten: Erstens: Verwenden Sie die Einstellung 'sep'

>>> print(*names, sep = ', ')

Der andere ist unten

>>> print(', '.join(names))
14
lyerox

Das brauchen Sie

", ".join(names)
9
user278064

Sie müssen die Liste durchlaufen und mit end=" " in einer Zeile bleiben

names = ["Sam", "Peter", "James", "Julian", "Ann"]
    index=0
    for name in names:
        print(names[index], end=", ")
        index += 1
3
Tofu Warrior

','.join(list) funktioniert nur, wenn alle Elemente in der Liste Zeichenfolgen sind. Wenn Sie eine Liste mit Zahlen in eine durch Kommas getrennte Zeichenfolge konvertieren möchten. B. a = [1, 2, 3, 4] in '1,2,3,4', können Sie dies tun

str(a)[1:-1] # '1, 2, 3, 4'

oder

str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'

obwohl dies keine verschachtelten Listen entfernt.

Um es wieder in eine Liste umzuwandeln

a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]
1
Vineeth Sai

Ich weiß nicht, ob dies effizient ist, aber die einfache Logik funktioniert immer:

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(", ")

Ausgabe:

Sam, Peter, James, Julian, Ann

0
Fredrick Gauss

Die folgende Funktion nimmt eine Liste auf und gibt eine Zeichenfolge der Listenelemente zurück. Dies kann dann zum Protokollieren oder Drucken verwendet werden.

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
0
Rajesh Thennan