Ich habe viele ähnliche Fragen im Zusammenhang mit meiner Frage gelesen, aber ich habe keine speziell dafür gesehen. Ich habe eine Liste von Objekten, wie zum BeispielFormatieren von Listen von Objekten in Python
l = ((a, 0.5), (b, 0.75), (c, 0.954367))
Ich möchte die Zahlen nur in der Lage sein ausdrucken, formatiert bis zu 5 Dezimalstellen. Ich war nicht sicher, wie um dies zu realisieren, also fing ich an, indem Sie versuchen, es zu schneiden und es dann drucken, wie solche
nums = list(z[1:2] for z in l) # originally had 'tuple' instead of 'list'
print("numbers: {:.5f}".format(nums))
Aufschneiden Werke, mir geben nur die Zahlen, aber wenn ich an die print-Anweisung erhalten ich erhalte einen Fehler
TypeError: non-empty format string passed to object.__format__
ich hatte ursprünglich das Aufschneiden als Tupel getan werden, aber dachte, dass das verursacht haben mag der Fehler es so geändert eine Liste, die nicht geholfen haben. Eine Antwort Ich lese noted that "Bytes Objekte haben keine eigene _ _format__ Methode, so dass der Standard von Objekt verwendet wird." und schlug vor, es stattdessen in eine Zeichenfolge zu konvertieren - was zu dem gleichen Fehler führte.
Meine Frage im Wesentlichen, gibt es eine Möglichkeit, diesen Fehler zu beheben, oder eine bessere Möglichkeit, um die Ausgabe ohne Slicing/mit der oben genannten Methode zu erhalten?
Vielen Dank,
Diese Antwort adressiert nicht die Formatierungseinschränkung für 5 Dezimalstellen. – vincentmajor
Diese Antwort war für die erste Zeile, die zweite Zeile in Frage war bereits für 5 Dezimalpunkt –