String 什么';翻转位字符串中单个位的最佳方式是什么?

String 什么';翻转位字符串中单个位的最佳方式是什么?,string,python-3.x,bit-manipulation,bits,bitstring,String,Python 3.x,Bit Manipulation,Bits,Bitstring,比如说,你有一个8个字符的字符串,代表一个8位字节;i、 e'00000000'(0)并且您希望翻转一个位,使其成为'00010000'(16)。最好或最优雅的方法是什么?当谈到位操作时,在第n个位置翻转单个位的经典方法是 x ^= 1 << n x^=1使用int而不是str?如果必须使用str,那么转换为int并返回最简单,因为使用文本0和1的逻辑没有使用实际位那么简单。使用蝴蝶翅膀。这里并没有任何令人满意的方法,因为字符串是不可变的。最好使用一个提供新类型的库,例如or(如果

比如说,你有一个8个字符的字符串,代表一个8位字节;i、 e
'00000000'
(0)并且您希望翻转一个位,使其成为
'00010000'
(16)。最好或最优雅的方法是什么?

当谈到位操作时,在第n个位置翻转单个位的经典方法是

x ^= 1 << n

x^=1使用
int
而不是
str
?如果必须使用
str
,那么转换为
int
并返回最简单,因为使用文本
0
1
的逻辑没有使用实际位那么简单。使用蝴蝶翅膀。这里并没有任何令人满意的方法,因为字符串是不可变的。最好使用一个提供新类型的库,例如or(如果您想要更高层次的便利),或者只使用整数(如果您想要更快)。“Bitstring”并不是指“字面上的字符串”,因为它包含单词字符串。这是一种更高层次的讨论方式,无论您选择如何实现它们。一个实际的字符串可以作为实现,但它不太擅长这项工作。