2010-03-07 10 views

Antwort

5
[int(x, 16) for x in L] 
+0

Ich denke du meinst machen 'int (x, 16)' –

3

[0xBB, 0xA7, 0xF6, 0x9E] ist die gleiche wie [187, 167, 158]. Es gibt also keine spezielle 'hex Integer' Form oder ähnliches.

Aber Sie können Ihren Hexstring zu Ints konvertieren:

>>> [int(x, 16) for x in ['BB', 'A7', 'F6', '9E']] 
[187, 167, 246, 158] 

Siehe auch Convert hex string to int in Python

+0

Ich habe eine Liste in Python mit dem folgenden Inhalt P SENDEN VON DATEN Q . Q . –

4

Je nach Format in der Textdatei, kann es einfacher sein, direkt zu konvertieren

>>> b=bytearray('BBA7F69E'.decode('hex')) 

oder

>>> b=bytearray('BB A7 F6 9E'.replace(' ','').decode('hex')) 
>>> b 
bytearray(b'\xbb\xa7\xf6\x9e') 
>>> b[0] 
187 
>>> hex(b[0]) 
'0xbb' 
>>> 

ist ein bytearray leicht

in eine Liste umgewandelt
>>> list(b) == [0xBB, 0xA7, 0xF6, 0x9E] 
True 

>>> list(b) 
[187, 167, 246, 158] 

Wenn Sie die Liste, um die Art und Weise ändern möchten angezeigt wird müssen Sie Ihre eigene Liste Klasse

>>> class MyList(list): 
... def __repr__(self): 
... return '['+', '.join("0x%X"%x if type(x) is int else repr(x) for x in self)+']' 
... 
>>> MyList(b) 
[0xBB, 0xA7, 0xF6, 0x9E] 
>>> str(MyList(b)) 
'[0xBB, 0xA7, 0xF6, 0x9E]' 
Verwandte Themen