2016-05-22 9 views
-2

Im Moment habe ich eine Listeconvert Liste in Zeichenfolge in python3

>>> deints 
[10, 10, 10, 50] 

ich es als 10.10.10.50 drucken möchten. Ich habe es als

Methode 1

>>> print(str(deints[0])+'.'+str(deints[1])+'.'+str(deints[2])+'.'+str(deints[3])) 
10.10.10.50 

Gibt es noch andere Möglichkeiten, wie wir diese acheivie können?

Danke

+0

'print (''. Join (Karte (str, deints)))' – styvane

+1

Mögliche Duplikat [eine Liste in einen String konvertieren] (http://stackoverflow.com/questions/2906092/converting -a-list-to-a-string) – PyNEwbie

Antwort

3

Sie tun können, es mit:

print('.'.join(str(x) for x in deints)) 
+0

Danke. Obwohl es für Python 2 ist, habe ich verstanden, was ich hinzufügen muss, damit es in Python läuft. 3 –

+0

@Neapolitan [Du irrst dich.] (Http://stackoverflow.com/a/9061024/1672429) –

2

Dies ist sehr einfach. Werfen Sie einen Blick auf str.join

print '.'.join([str(a) for a in deints]) 

Zitat aus der Dokumentation:

str.join (abzählbaren)

Return eine Zeichenkette, die die Verkettung der Strings in der ist iterierbar iterierbar. Das Trennzeichen zwischen Elementen ist die Zeichenfolge, die diese Methode bereitstellt.

+0

Können Sie bitte erklären, –

+0

@Raja, dies nur verkettet alle Elemente einen Zeitraum als Trennzeichen einfügen. Sie müssen auch jede Zahl zuerst in eine Zeichenfolge umwandeln. – ForceBru

-1

Konvertieren Sie sie in Zeichenfolgen, dann verbinden Sie sie. Versuchen Sie es mit:

".".join([str(x) for x in x]) 
3

können Sie die join Methode auf Strings verwenden und die Daten zuerst in der Liste in Strings zu konvertieren.

>>> '.'.join(map(str, deints)) 
'10.10.10.50' 

join nimmt die Zeichenfolge als ein Trennzeichen und verkettet den Inhalt der Liste mit diesem Trennzeichen zwischen jedem Element.

+0

Bitte erklären der Downvote? – Matthias

+0

Ich bin nicht der Down-Wähler, aber das Problem hier ist, dass Sie müssen "". "Join" – ForceBru

+0

Ah, richtig. Aber die Abstraktion hätte möglich sein sollen. Es ist lustig, [erstmals habe ich diese Art von Frage beantwortet] (http://stackoverflow.com/questions/12053236/python-äquivalent-for-phps-implode/12053276#12053276) Ich habe positiven Ruf ... – Matthias

1

Offensichtlich str.join() ist der kürzeste Weg

'.'.join(map(str, deints)) 

oder wenn Sie nicht mögen map() ein Verständnis Liste verwenden

'.'.join([str(x) for x in deints]) 

Sie auch manuell tun können, mit * die deints Liste in eine Reihe konvertieren von Funktionsargumenten

'{}.{}.{}.{}'.format(*deints) 

oder functools.reduce verwenden und eine lambda Funktion

reduce(lambda y, z: '{}.{}'.format(y, z), x) 

Alle Rückkehr

'10.10.10.50' 
0

Nur eine nicht join Lösung.

>>> print(*deints, sep='.') 
10.10.10.50 
Verwandte Themen