在Python中使用二进制表示构建二进制数列表

在Python中使用二进制表示构建二进制数列表,第1张

概述我有一个非常大的0和1的列表,表示为整数 – 默认情况下 – 由 python,我认为:[randint(0,1)for i in range(50 * 98)] 我想优化代码,以便它使用更少的内存.显而易见的方法是仅使用1位来表示这些数字. 是否有可能在python中构建一个真正的二进制数列表? 问候, 布鲁诺 编辑:谢谢大家. 从我发现的答案中我发现默认情况下Python没有这样做,所以我发现 我有一个非常大的0和1的列表,表示为整数 – 默认情况下 – 由 python,我认为:[randint(0,1)for i in range(50 * 98)]

我想优化代码,以便它使用更少的内存.显而易见的方法是仅使用1位来表示这些数字.

是否有可能在python中构建一个真正的二进制数列表?

问候,
布鲁诺

编辑:谢谢大家.
从我发现的答案中我发现默认情况下Python没有这样做,所以我发现这个库(由Macports在OSX上安装,因此它省去了一些麻烦),它做了位 *** 作:
python-bitstring

解决方法 这使用 bitstring模块并从列表中构造BitArray对象:

from bitstring @R_403_5565@ BitArrayb = BitArray([randint(0,1) for i in range(50*98)])

在内部,现在以字节形式存储,因此将占用更少的内存.您可以使用常用符号进行切片,索引,检查和设置位等,并使用其他方法(如set,allany)来修改位.

要将数据作为二进制字符串返回,只需使用b.bin并获取字节打包数据,请使用b.tobytes(),它将填充零位到字节边界.

总结

以上是内存溢出为你收集整理的在Python中使用二进制表示构建二进制数列表全部内容,希望文章能够帮你解决在Python中使用二进制表示构建二进制数列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存