他的呢?
>>> data = struct.pack('2I',12, 30)
>>> [hex(ord(c)) for c in data]
['0xc', '0x0', '0x0', '0x0', '0x1e', '0x0', '0x0', '0x0']
表情
[item for item in sequence]
这就是所谓的
list comprehension
.这基本上是一种非常简洁的写作方法
for
循环,并根据结果创建列表。
这个
ord()
内置函数接受一个字符串,并将其转换为一个整数,该整数是其对应的unicode代码点(对于ASCII字符集中的字符,其值与ASCII表中的值相同)。
它的对应物,
chr()
8比特字符串或
unichr()
对于unicode对象,则相反。
这个
hex()
然后,builtin简单地将整数转换为十六进制表示形式。
正如@TimPeters所指出的,在Python 3中,您需要丢失
ord()
,因为迭代字节对象将(已经)产生整数:
Python 3.4.0a3 (default, Nov 8 2013, 18:33:56)
>>> import struct
>>> data = struct.pack('2I',12, 30)
>>> type(data)
<class 'bytes'>
>>> type(data[1])
<class 'int'>
>>>
>>> [hex(i) for i in data]
['0xc', '0x0', '0x0', '0x0', '0x1e', '0x0', '0x0', '0x0']