Formatiere Ints in eine Zeichenfolge von hex
Ich brauche, um einen string von hex-Ziffern aus einer Liste von zufälligen Ganzzahlen (0-255). Jede hex-Ziffer sein sollte, dargestellt durch zwei Zeichen: 5 - "05", 16 - "10", etc.
Beispiel:
Input: [0,1,2,3,127,200,255], Output: 000102037fc8ff
Habe ich es geschafft zu kommen mit:
#!/usr/bin/env python
def format_me(nums):
result = ""
for i in nums:
if i <= 9:
result += "0%x" % i
else:
result += "%x" % i
return result
print format_me([0,1,2,3,127,200,255])
Jedoch sieht dies ein wenig umständlich. Gibt es eine einfachere Möglichkeit?
InformationsquelleAutor der Frage facha | 2011-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort vartec
Nur der Vollständigkeit halber, mit dem moderne
.format()
syntax:InformationsquelleAutor der Antwort Gerald Kaszuba
InformationsquelleAutor der Antwort John La Rooy
Doch eine weitere option ist
binascii.hexlify
:Drucke
Dies ist auch die Schnellste version für große Zeichenfolgen auf meinem Rechner.
In Python 2.7 oder höher ist, könnte man verbessern dies sogar noch durch die Verwendung
speichern der erstellten Kopie durch das
bytes
nennen.InformationsquelleAutor der Antwort Sven Marnach
Ähnlich wie meine andere Antwort, außer der Wiederholung der format-string:
InformationsquelleAutor der Antwort Gerald Kaszuba
Drucke
(Beachten Sie auch, dass Ihr code wird nicht für ganze zahlen im Bereich von 10 bis 15.)
InformationsquelleAutor der Antwort Sven Marnach