Ich habe einen Algorithmus, der das schon tut, aber der Code ist hässlich und langsam. Ich nehme an, dass es in den Bibliotheken eingebaute oder einige Funktionen gibt, die schnellere und präzisere Ergebnisse liefern.Füge führende Nullen zu einer Zeichenkette hinzu Python
Was ich will, wo ich eine endgültige Anzahl der Bits geben kann, eine Zeichenfolge, Liste oder deque (alles, was am Ende in einen String umgewandelt werden kann).
func(totalBits, binaryInStringOrListForm) -> String or List with leading zeroes
Der Code, den ich ist unten schon haben:
val = deque(["1", "0"])
while len(val) < 8:
val.appendleft("0")
By the way, deque eine Art von Objekt von Sammlungen, die Sie leftappend
ermöglicht, wobei Sie ein Element an den Anfang hinzufügen von der Liste, ohne alles um eins verschieben zu müssen.
Es gibt alte Antworten auf diese, aber sie sind alle Python 2 und die ganze Formatierung Sache erheblich verändert hat.
EDIT: Ich denke, dass diese Frage verknüpft kein Duplikat des einen ist, wie ich eigentlich nach führenden Nullen war als @Martijn Pieters mir bewusst gemacht hat.
EDIT: Ok, es ist ein Duplikat davon scheint es. Entschuldigung wegen des Betrogenen.
LETZTE BEARBEITUNG SCHWÄCHE: Ich habe gerade etwas bemerkt. Ich bekomme Werte wie 000b0110, wenn ich versuche, es ein Byte lang zu machen. Dies steht im Gegensatz zu 00000110, die ich wollte. Ich füge nur das hinzu, damit, wenn irgendjemand in der Zukunft diese Frage aufschaut, sie das richtige Ding finden werden. Also alles, was ich getan habe, ist es, die ersten beiden Zeichen der Zeichenfolge ignorieren, indem Sie:
val = val[2::].rjust(8, '0')
ich diese bekommen, weil ich eine Zahl in eine binäre Zahl mit „bin“ drehen die eine Zeichenkette, hat am Anfang die "0b" (deklariert es als binär).
Warum nicht einfach String-Verkettung verwenden, wenn Sie nur Nullen anhängen müssen? –
Wenn Sie an den * linken * angehängt sind, fügen Sie keine ** führenden ** Nullen hinzu? –
Zeichenketten sind unveränderlich und daher würde Python gezwungen sein, eine neue Zeichenkette für jede neue verkettete Zeichenkette zu erzeugen. Das ist langsam. Ich brauche schnell dafür. – Frogboxe