Ich muss mich einer Liste von Elementen anschließen. Viele der Elemente in der Liste sind ganzzahlige Werte, die von einer Funktion zurückgegeben werden. dh
myList.append(munfunc())
Wie soll ich das zurückgegebene Ergebnis in eine Zeichenfolge konvertieren, um es mit der Liste zu verbinden?
Muss ich für jeden ganzzahligen Wert Folgendes tun:
myList.append(str(myfunc()))
Gibt es einen pythonischeren Weg, um Casting-Probleme zu lösen?
Antworten:
Das Aufrufen
str(...)
ist die pythonische Methode, um etwas in eine Zeichenfolge umzuwandeln.Vielleicht möchten Sie überlegen, warum Sie eine Liste von Zeichenfolgen möchten. Sie können es stattdessen als Liste von Ganzzahlen beibehalten und die Ganzzahlen nur dann in Zeichenfolgen konvertieren, wenn Sie sie anzeigen müssen. Wenn Sie beispielsweise eine Liste von Ganzzahlen haben, können Sie diese einzeln in eine for-Schleife konvertieren und sie verbinden mit
,
:quelle
Es ist nichts Falsches daran, ganze Zahlen an str zu übergeben. Ein Grund, warum Sie dies möglicherweise nicht tun, ist, dass myList eigentlich eine Liste von Ganzzahlen sein soll, z. B. wäre es sinnvoll, die Werte in der Liste zu summieren. Übergeben Sie in diesem Fall Ihre Ints nicht an str, bevor Sie sie an myList anhängen. Wenn Sie vor dem Anhängen nicht in Zeichenfolgen konvertieren, können Sie eine große Zeichenfolge erstellen, indem Sie Folgendes tun
quelle
str
? Bitte bedenken Sie die Möglichkeit, dass Sie Ihrem Parser etwas Fuzzy-Logik hinzufügen müssen ;-)Die Map-Funktion in Python kann verwendet werden. Es braucht zwei Argumente. Das erste Argument ist die Funktion, die für jedes Element der Liste verwendet werden muss. Das zweite Argument ist das iterable .
Nach dem Konvertieren der Liste in eine Zeichenfolge können Sie die einfache Verknüpfungsfunktion verwenden, um die Liste zu einer einzelnen Zeichenfolge zu kombinieren
quelle
Die obige Methode ist die einfachste und allgemeinste Methode, um eine Liste in einen String umzuwandeln. Eine andere kurze Methode ist:
quelle
Es gibt drei Möglichkeiten, dies zu tun.
Angenommen, Sie haben eine Liste mit Ints
"-".join(str(n) for n in my_list)
"-".join([str(n) for n in my_list])
"-".join(map(str, my_list))
Wie im Beispiel von timeit auf der Python-Website unter https://docs.python.org/2/library/timeit.html angegeben, ist die Verwendung einer Karte jedoch schneller. Daher würde ich Ihnen die Verwendung empfehlen
"-".join(map(str, my_list))
quelle
Ihr Problem ist ziemlich klar. Vielleicht möchten Sie erweitern, um alle Elemente einer anderen Liste zu einer vorhandenen Liste hinzuzufügen:
Wenn Sie Ganzzahlen in Zeichenfolgen konvertieren möchten, verwenden Sie str () oder Zeichenfolgeninterpolation, möglicherweise kombiniert mit einem Listenverständnis, d. H.
All dies wird als pythonisch betrachtet (ok, ein Generatorausdruck ist noch pythonischer, aber bleiben wir einfach und thematisch)
quelle
Beispielsweise:
Ich möchte
str
vor jeder Str-Liste eine hinzufügen :Oder einzelne Liste:
quelle
Vielleicht brauchen Sie keine Zahlen als Zeichenfolgen, tun Sie einfach:
Wenn Sie es später als Zeichenfolge benötigen, können Sie es mit Zeichenfolge oder mit Formatzeichenfolge tun:
print "Vastaus5 = %s" % functaulu[5]
quelle
Wie kommt es, dass niemand zu mögen scheint
repr
?Python 3.7.2:
Pass aber auf, es ist eine explizite Darstellung. Ein Beispiel zeigt:
Weitere Infos unter pydocs-repr
quelle