2013-10-16 5 views
0

16 진수 문자열 목록이 있습니다.어떻게 16 진수 문자열을 16 진수로 변환합니까?

mylist = ['0xff', '0x34', '0x95', '0x11'] 

이 목록을 다른 목록으로 가져 오려면 16 진수 형식으로 지정하고 싶습니다. 따라서 목록은 이와 같이 보일 것입니다.

myhexlist = ['\xff', '\x34', '\x95', '\x11'] 

내가 무엇을 시도했다 : 원하는 출력을 생성하지 않습니다

#!/usr/bin/env python 

myhexlist = [] 
mylist = ['0xff', '0x34', '0x95', '0x11'] 

for b in mylist: 
    myhexlist.append(hex(int(b,16))) 

print myhexlist 

.

+0

'0x'를'\ x'로 바꾸지 않는 이유는 무엇입니까? 예를 들어, mylist에있는'myhexlist = [i.replace ("0x", "\\ x")]'. –

+0

그러면 데이터 유형이 문자열과 동일하게 유지됩니다. 니콜라스의 대답은 제가하려고 한 일입니다. – user791953

답변

2

hex이 아닌 chr을 사용하고 싶습니다.

또한 목록에 추가하는 루프가 아닌 목록 이해를 사용하는 것이 더 효율적입니다.

>>> myhexlist = [chr(int(hex_str, 16)) for hex_str in mylist] 
>>> myhexlist 
['\xff', '4', '\x95', '\x11'] 

(분명히 인쇄 할 수있는 문자는 \x##입니다.)

관련 문제