2017-06-09 3 views
-1

Was ist der Python-Weg, um die folgende Transformation durchzuführen?Eine Liste in eine Zeichenkette umwandeln

[a, b, c] -> " 'a', 'b', 'c'"

Wo a, b und c sind alle Variablen Saiten halten.

+0

Was meinen Sie mit "Variablen mit Strings"? – pylang

+0

Titel sagt Liste, Körper sagt Variablen. Welches ist es? –

+0

a = 'eins', b = 'zwei', c = 'drei', ... n = 'unendlich'.Ich habe eine Liste [a, b, c, ..., n] und möchte, dass die Ausgabe "eins", "zwei", "drei", ... "unendlich" ist. – labjunky

Antwort

7

Sie es einfach in einen String drehen die normale Art und Weise und entfernen Sie die Klammern, die Sie nicht wollen?

str(mylist)[1:-1] 
+1

Coole Antwort! Ich mag, wie du darüber nachgedacht hast :-) –

1
verwenden, um die `.join` Methode auf einer Schnur '' .join ([ 'a', 'b', 'c'])

die Frage falsch verstanden

"'{}' '{}' '{}'".format(*[a, b, c]) 

oder wenn Sie nicht wissen, die Länge der Liste

a, b, c = 'ehllo', 'sdf', 'sdflkj' 
d = [a,b,c] 
("'{}', " * len(d))[:-2].format(*d).strip() 

Ausgänge, es ist ziemlich klobig, aber es wird auch dann, wenn die Listenelemente arbeiten, sind nicht str

"'ehllo', 'sdf', 'sdflkj'" 

oder in Python 3,6

d = [a, b, c] 
f"{d[0]} {d[1]} {d[2]}" 
+0

ist es möglich mit Kommas zu trennen zB: '' ehlo ',' sdf ',' sdflkj '" – labjunky

+0

@labjunky siehe aktualisierte Antwort oben –

1

Eine direkte Methode

var = [a,b,c] 
'\'' + '\', \''.join(var) + '\'' 

Angenommen, der Inhalt der Variablen ist die Zeichenversion von t Erben Name, (dh a, b, c = 'a', 'b', 'c'), würde die Ausgabe

"'a', 'b', 'c'" 
1

sein können Sie str.format() verwenden:

d = [a, b, c] 
final = "'{}', '{}', '{}'".format(*d) 

Edit: Eine Antwort von der Antwort von @Stefan Pochmann inspiriert

d = [a, b, c] 
final = str(d)[1:-1] 

Beispiel:

a, b, c = 'a', 'b', 'c' 
d = [a, b, c] 
final = "'{}', '{}', '{}'".format(*d) 
print(final) 

Ausgang:

'a', 'b', 'c' 
0

Alle anderen Lösungen gelten, glaube ich, aber hier ist meins:

final_string = "" 
for item in list: 
    if item != list[-1]: 
     final_string += "'" + item + "', " 
    else: 
     final_string += "'" + item 

Nicht sehr prägnant, aber ich denke, es ist wichtig, den Prozess zu verstehen. Das ist die Art von Dingen, die ich zuerst schreibe, wenn ich ein neues Programm schreibe und es später verfeinere. Ich mag es genau zu wissen, was vor sich geht, und manchmal können Single-Line-Lösungen das ein wenig trüben. Aber ich würde irgendwann umgestalten.

Verwandte Themen