2017-10-13 5 views
1

Im Versuch, meine sehr lange Integer-Liste zu konvertieren ia Binärfeldes (Liste) Im mit struct.pack() und es funktioniert gut, aber ich denke, das ist sehr hässlich ist:Python-Struktur mit großer Liste

buf = pack(">IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII", *data) 

Ich muss dies tun, weil meine Liste 113 Elemente mit großen und kleinen Werten enthält. Gibt es eine Möglichkeit, pack() mit einer langen Liste zu verwenden, ohne 113 "I" zu haben?

Antwort

4

Wenn Sie eine Zeichenfolge mit einer Ganzzahl multiplizieren, wird die Zeichenfolge so oft wiederholt. Zum Beispiel:

>>> 'foo'*3 
'foofoofoo' 

So können Sie verwenden:

buf = pack(">" + "I"*len(data), *data) 

Das ist eleganter und auch sicher: bei der Anzahl der Objekte ändern, dies einfach arbeiten halten.