社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Lukas Graf

Lukas Graf 最近创建的主题
Lukas Graf 最近回复了

他的呢?

>>> 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']