что у меня есть list
или tuple
, содержащее число типа long long
,питона struct.pack(): пакет несколько ДАННЫХ в виде списка или кортеж
x = [12974658, 638364, 53637, 63738363]
Если хочет, чтобы struct.pack
их по отдельности, я должен использовать
struct.pack('<Q', 12974658)
или, если я хочу, чтобы это сделать, как несколько, то я должен явно указать это так
struct.pack('<4Q', 12974658, 638364, 53637, 63738363)
Но как я могу вставлять элементы в list
или tuple
внутри инструкции struct.pack
. Я попытался использовать цикл for
следующим образом.
struct.pack('<4Q', ','.join(i for i in x))
получил ошибку говоря expected string, int found
, поэтому я преобразовал список, содержащий тип int
в str
, теперь он становится гораздо более сложным, чтобы упаковать их. Потому что весь список преобразуется в строку (например, одно предложение).
В настоящее время им делать некоторые вещи, как
binary_data = ''
x = [12974658, 638364, 53637, 63738363]
for i in x:
binary_data += struct.pack('<Q', i)
И я распаковывать их, как
struct.unpack('<4Q', binary_data)
Мой вопрос: есть лучший путь вокруг, как я могу прямо указать на list
или tuple
внутри заявления struct.pack
, или, возможно, одного лайнера?
Я также попробовал [этот SO ответ] (http://stackoverflow.com/questions/16368263/python-struct-pack-for-individual-elements-in-a-list). не помогло. Я получаю ошибку как «плохой символ в формате структуры». – arvindh