我已經有一個算法,它已經這樣做了,但代碼是醜陋和緩慢的。我假設在庫中有一個內置或某些函數可以提供更快,更精確的結果。將前導零添加到一個字符串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