2016-07-19 7 views
0

Wie drucke ich meine ersten drei elemets in meinem Tupel in einer durch Komma getrennten Zeichenfolge (Ich versuche zu lernen: Wörterbücher und Tupel, also spiele ich nur mit es, das ist, warum ich es habe Umwandlung :))Python3 Tupel und Liste, Ausdruck String komma-getrennt

tup = ("snake", 89, 9.63, "bookshelf", 1) 
list(tup) 
tup[1] = "cow" 
tuple(tup) 

Antwort

4

Sie Scheibe das Tupel dann es * mit entpacken. Übergeben Sie den sep Parameter print als Komma ','

Dies tut es:

>>> tup = ("snake", 89, 9.63, "bookshelf", 1) 
>>> print(*tup[:3], sep=',') 
snake,89,9.63 

Sie etwas Platz zwischen den gedruckten Elemente hinzufügen können, wenn Sie eine nachfolgende Leerzeichen in den Separator hinzufügen:

>>> print(*tup[:3], sep=', ') 
snake, 89, 9.63 

Wenn Sie die Zeichenfolge in einem Wert verwenden möchten, dann tut join genau das:

>>> v = ', '.join(map(str, tup[:3])) 
>>> v 
'snake, 89, 9.63' 
+0

Danke! Alles läuft jetzt perfekt, aber was verbindet (map())? Ich meine eine einfache Erklärung darüber, damit ich es verstehe :) –

+0

['map'] (https://docs.python.org/2/library/functions.html#map) funktioniert wie ein Listenverständnis. In diesem Fall nimmt jedes Element in der Liste und konvertiert sie in Zeichenfolge. Dann nimmt ['join'] (http://stackoverflow.com/questions/1876191/explain-python-join) die neue String-Liste und führt eine String-Verkettung mit allen Items durch –

+0

Ah, cool :) Danke. –

0

Okey es funktioniert nicht ganz für mich, ich habe eine Python-Datei, die verschiedene Zuordnungen haben, wo ich Wörterbücher und Tupel lerne, und wir beantworten unsere Antwort in einer Variablen namens ANSWER und wenn ich die Datei ausführen, sage ich, wenn ich beende die Aufgabe oder nicht. Diese

ist das, was meine Antwort wie folgt aussieht:

null <class 'NoneType'> 

Und das ist der endgültige Code mit Ihrer Hilfe:

tup = ("snake", 89, 9.63, "bookshelf", 1) 
l = list(tup) 
l[1] = "cow" 
tuple(l) 

ANSWER = print(*l[:3], sep=',') 

Und das ist, was die Antwort wie

"snake,cow,9.63" <class 'str'> 
aussehen soll

Was muss ich ändern?