如何在Python中使用字符串和整数作为位字符串?
题
我正在用 python 开发遗传算法,染色体由字符串和整数组成。为了应用遗传运算,我想将这些整数和字符串组转换为位字符串。
例如,如果一条染色体是:
["Hello", 4, "anotherString"]
我希望它变成这样:
0100100100101001010011110011
(这不是实际翻译)。所以...我怎样才能做到这一点?染色体将包含相同数量的字符串和整数,但这些数字可能因运行的一种算法而异。
需要明确的是,我想要获得的是连接的染色体中每个元素的位表示。
如果您认为这不是应用遗传算子(例如突变和简单交叉)的最佳方法,请告诉我!我对新想法持开放态度。
多谢!曼努埃尔
解决方案
您可以使用以下命令将字符串和整数转换为字节串(或返回): 结构体 模块,这正好是 8 位到一个字节。如果出于某种原因您希望这些二进制字节串作为由以下内容组成的文本字符串 0
和 1
字符,当然,您可以以二进制形式打印它们。
编辑: :忘记提醒您如何将字节格式化为由以下内容组成的文本字符串 0
和 1
字符——在 Python 2.6 或更高版本中:
>>> format(23, '08b')
'00010111'
当然,要从这样的字符串返回到字节:
>>> int('00010111', 2)
23
不隶属于 StackOverflow