我已经有一个算法,它已经这样做了,但代码是丑陋和缓慢的。我假设在库中有一个内置或某些函数可以提供更快,更精确的结果。将前导零添加到一个字符串Python
我想要什么地方可以给出最终的位数,字符串,列表或deque(最后可以转换为字符串的任何内容)。
func(totalBits, binaryInStringOrListForm) -> String or List with leading zeroes
我已经得到的代码如下:
val = deque(["1", "0"])
while len(val) < 8:
val.appendleft("0")
顺便说一句,双端队列为收藏对象的类型,可以让你leftappend
其中您可以将一个项目添加到开始的名单,而不必将所有事情都转移一次。
这有些旧的答案,但它们都是Python 2,整个格式化的东西已经发生了很大的变化。
编辑:我认为这个问题不是一个链接的重复,因为我实际上在引导零后@Martijn Pieters让我意识到。
编辑:好吧,它似乎是一个副本。抱歉关于这个骗局。
最后修改我感觉:我只是注意到了一些东西。尝试使其长度为一个字节时,我不断收到像000b0110这样的值。这与我想要的00000110相反。我只是补充一点,这样如果其他人在未来查找这个问题,他们会发现正确的事情。因此,所有我所做的就是通过使用忽略字符串的前两个字符:
val = val[2::].rjust(8, '0')
我得到这个,因为我谈到了一些与“bin”的二进制数,它返回一个字符串在开始处有“0b”(声明为二进制)。
为什么不直接使用字符串连接,如果你只需要追加为零? –
如果您追加*左*,您是不是添加**前导**零? –
字符串是不可变的,因此Python将被迫为每个新的连接字符串创建一个新字符串。这很慢。我需要快速这个。 – Frogboxe