Python中高效生成8位整数表示的bytearray列表的方法
高效生成方案
你要的需求直接用列表推导式就能一行实现,比现有循环追加的写法性能更好,逻辑也更简洁:
buffer = [bytearray([127 + node_id]) for node_id in range(1, 51)]
相关说明
- bytearray的每个元素本身就是8位无符号整数类型,只要你传入的数值在128~255区间,底层存储就固定是1字节8位,你看到的二进制打印时省略前置0只是显示效果,完全不会影响实际存储格式,符合解码要求。
- 代码中node_id从1到50,刚好对应你要求的「每个bytearray的值对应索引+1(即node.id)」,加127后数值从128开始,和你原有实现的输出完全一致。
调试打印优化
你原有的二进制打印逻辑过于繁琐,可以直接用格式化字符串输出8位二进制:
buffer = [] for node_id in range(1, 51): val = 127 + node_id # 直接输出8位二进制字符串,无需多次类型转换 print(f"{val:08b}") elem = bytearray([val]) buffer.append(elem) print(elem) print(buffer)
内容的提问来源于stack exchange,提问作者Umair Shahid
相关产品推荐
相关产品推荐

