Hallo Python Experten,
Folgendes Problem:
SecLen=[0,0,0,0,0,0,0,0,0,0]
...
Befüllen von SecLen
...
print("S1: S2: S3: S4: S5: S6: S7: S8: ")
print("===============================================")
print([i for i in SecLen[1:9]])
S1: S2: S3: S4: S5: S6: S7: S8:
===============================================
[912593, 1488619, 1488895, 1490275, 1264611, 0, 524287, 0]
das funktioniert, wohingegen die Formatierung in Hex-Werte
s.u. scheitert.
print("S1: S2: S3: S4: S5: S6: S7: S8: ")
print("===============================================")
print("{0:>06x} {1:>06x} {2:>06x} {3:>06x} {4:>06x} {5:>06x} {6:>06x}
{7:>06x}".format([i for i in SecLen[1:9]]))
print("{0:>06x} {1:>06x} {2:>06x} {3:>06x} {4:>06x} {5:>06x}
{6:>06x} {7:>06x}".format([i for i in SecLen[1:9]]))
TypeError: non-empty format string passed to object.__format__
Mir ist nun nicht ganz klar, weshalb der Ausdruck
print("...".format([i for i in SecLen[1:9]]))
einen Fehler verursacht.
[i for ..] ist wohl ein einziges Objekt, wohingegen
format() acht Parameter erwartet.
Wie schaffe ich es [] in acht einzelne Werte zu zerlegen?
Ist für Euch wahrscheinlich trivial, aber ich stehe irgendwie
auf dem Schlauch.
Danke für hilfreiche Antworten.
Probiers mal mit dem * Operator: https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists
Bernd,
Danke das war des Pudels Kern!
Der * und ** Stern Operator war mir
bis dato nur im Zusammenhang mit
Directories bekannt.
Aber ich habe es noch weit zum Python Experten ;-)
print(" S1: S2: S3: S4: S5: S6: S7: S8: ")
print("======================================================")
print("{0:>06x} {1:>06x} {2:>06x} {3:>06x} {4:>06x} {5:>06x} {6:>06x}
{7:>06x}".format(*[i for i in SecLen[1:9]]))
S1: S2: S3: S4: S5: S6: S7: S8:
======================================================
0decd1 16b6eb 16b7ff 16bd63 134be3 000000 07ffff 000000
LG
Markus
Gast
#5488375
Hi Markus. Es geht auch noch etwas flexibler:
1 | |
Viele Grüße Falk
Markus W. schrieb: > [i for i in SecLen[1:9]] ist das nicht ein bisschen doppelt gemoppelt? einfach nur SecLen[1:9] hinschreiben würde doch reichen?
Oder so:
1 | |
2 | |
3 | |
4 | |
5 | |
Ausgabe:
1 | |
2 | |
3 | |
Danke für alle Vorschläge. Mein Skript im Anhang. Bestimmt besteht noch Verbesserungspotential. Wer die Zeit erübrigen kann und will, der darf gerne optimieren. Vielleicht inspiriert es den einen oder anderen. Ich bin wohl gemerkt kein Python-Experte, hoffe aber es demnächst zu werden ;-) Markus
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.