python - 从字符串创建十六进制列表
问题描述
我正在尝试将字符串转换为十六进制列表:
myString = b'abcdefghijh'
hex = codecs.encode(myString, "hex")
print(hex)
print(list(hex))
然而,这给了我结果:
b'6162636465666768696a68'
[54, 49, 54, 50, 54, 51, 54, 52, 54, 53, 54, 54, 54, 55, 54, 56, 54, 57, 54, 97, 54, 56]
谁能告诉我为什么 2 不匹配?
解决方案
myString = b'abcdefghijh'
hex = codecs.encode(myString, "hex")
print(hex)
# b'6162636465666768696a68'
您在此处看到的输出实际上是您的十六进制表示的字节对象。这意味着该hex
对象中的第一个字节是 '6' 的 ASCII 字节表示,第二个字节是 '1' 的 ASCII 字节表示,等等。 Python 将其转换回字符以便您在打印到控制台时方便。
所以当你这样做时:
print(list(hex))
# [54, 49, 54, 50, 54, 51, 54, 52, 54, 53, 54, 54, 54, 55, 54, 56, 54, 57, 54, 97, 54, 56]
您看到的数字是上述字节的整数表示(54 是字符“6”的十进制 ASCII 码,49 是字符“1”的十进制 ASCII 码等)
推荐阅读
- python - 如何基于相似度矩阵对大量字符串进行聚类?
- c# - 参数化 ResourceDictionary - 这可能吗?
- c++ - 指向非常量数据的 const 指针
- flurl - 如何使用 flurl 获取带有查询字符串参数的响应正文
- python - 根据条件和其他列在熊猫数据框中删除重复行(汇总数据)
- redhat - Java多个进程写入同一文件夹性能问题
- python - 如何暂停读取串行数据以便调用函数?
- bazel - 如何查询 bazel 以获取扩展名为 .srcjar.zip 的生成文件的完整列表?
- flutter - 设置 Flutter RaisedButton 样式的正确方法是什么?
- typescript - 根据对象中已设置的属性缩小联合类型