python - 将 128 位的所有排列生成为字节或位,而不是字符串
问题描述
我试图生成 128 位的所有排列并将它们存储在某种结构中。我在其他 Stack Overflow 问题中使用以下方法找到了一些有用的信息:
keys = map(''.join,itertools.product('01',repeat=n))
问题是该解决方案仅对足够小的值有用,n
因为它将列表中的值存储为字符串,因此序列中的每个位都是一个字节,这意味着每个排列的长度为 128 个字节
使用如此高的值,例如n=128
,将所有排列存储为字符串是不可能的。(使用 执行时,我的计算机内存不足itertools.product()
)n=128
。而将排列存储为原始字节意味着每个排列有 16 个字节。
我的问题是如何归档与intertools.product
处理字节相同的结果。
解决方案
尝试这个:
perms = [ x for x in range(0, 2**128)]
推荐阅读
- android - ACTION_MEDIA_BUTTON 在 BroadcastReceiver 中不起作用
- reactjs - 反应服务器端渲染如何在viewsource中显示html
- symfony - Symfony 3.4:无法从控制台命令清除实体缓存
- python - 使用循环更改 2d 列表值不正确
- ecmascript-6 - Underscore 的 _.indexBy() 的 ES6 版本
- android - RecycleView 适配器充气崩溃
- json - jq:如何将列表中每个元素的键添加到其值中
- python - 如何使用 Numpy 用 NaN 替换 Dataframe 列的一系列值?
- python - SQLite3 数据库如何合并?
- java - Go中String的MD5摘要与Java不同