Drucken benannten Tupel
In Python 2.7.1 kann ich erstellen Sie eine benannte Tupel:
from collections import namedtuple
Test = namedtuple('Test', ['this', 'that'])
Kann ich füllen:
my_test = Test(this=1, that=2)
Und kann ich drucken Sie es wie folgt:
print(my_test)
Test(this=1,=2)
aber warum kann ich nicht drucken, wie diese?
print("my_test = %r" % my_test)
TypeError: nicht alle Argumente konvertiert werden, während der string-Formatierung
Edit:
Ich hätte wissen müssen, zu betrachten Druck-Tupel mit string formatting in Python
- weil es ein Tupel...
- Duplikat von Drucken Tupel mit string formatting in Python. Wenn Sie feststellen, dass Ihre Frage ist ein Duplikat zu Kennzeichnen, "Sie gehört nicht hierher -> exaktes Duplikat", nicht nur fügen Sie einen link zu der Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit
my_test
ist ein Tupel, es wird sich für eine%
format für jedes Element in dem Tupel. Um dieses wickeln Sie es in ein anderes Tupel, wo das einzige element istmy_test
:Vergessen Sie nicht das Komma.
Können Sie dies tun:
Es Auspacken als 2 Argumente. Vergleichen Sie mit:
In deinem Fall, versuchen Sie, ihn in ein Tupel.
Den früheren Antworten sind gültig, aber hier ist eine option, wenn Sie nicht kümmern, um drucken Sie die Namen. Es ist ein one-liner entworfen, um ziemlich druckt nur den Inhalt des benannten Tupel beliebiger Länge. Gegeben ein benanntes Tupel zugewiesen "named_tuple" die unten liefert eine Komma-abgegrenzte Zeichenfolge von Schlüssel=Wert-Paare:
Als jetzt am dokumentiert 4.7.2. printf-style-String-Formatierung, die
%
string-Formatierung oder interpolation Betreiber ist problematisch:So zum Beispiel können Sie jetzt tun: