簡體   English   中英

在Python中將整數列表轉換為字節數組

[英]Convert a list of integers to a bytearray in Python

我是Python的新手(C是我的主要語言),所以這可能是一個非常基本的問題。

我有兩個用以下Python代碼生成的整數列表:

mainList = range(100)
random.shuffle(mainList)
list1 = mainList[:len(mainList)/2]
list2 = mainList[len(mainList)/2:]

基本上,我試圖通過TCP連接發送這些列表中的每個列表( list1list2 ),並且我想確保我只為每個列表發送50字節有效負載(每個列表包含50個整數)。

最好的方法是什么? bytearray()函數是否完全適用於此?

您可以使用以下方法。 首先使用Python的struct模塊將整數列表打包為二進制,每個整數使用4個字節。 I指定所需的大小,因此,如果您的整數只是字節值,則可以將其更改為B

然后使用zipiter從字節列表中一次抓取50個字節。 然后,這意味着您可以按自己的喜好任意設定長度:

import random
import struct

main_list = range(100)
random.shuffle(main_list)

# 'I' meaning unsigned int of 4 bytes
bytes = struct.pack("{}I".format(len(main_list)), *main_list)

for send_50 in zip(*[iter(bytes)]*50):
    print len(send_50)

使用Python 2.7測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM