繁体   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