You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串字符转为十六进制元组?遇TypeError错误求助

问题描述

我有如下字符串:

Hello

使用list()将其拆分为字符列表:

MS = list(MS)

得到结果:

['H', 'e', 'l', 'l', 'o']

我希望将其转换为如下格式的十六进制元组:

p = (0x48, 0x65, 0x6c, 0x6c, 0x6f)

尝试使用以下代码转换时失败:

p = tuple(hex(x) for x in MS)

报错信息:

TypeError: 'str' object cannot be interpreted as an integer

请问该如何实现?

解决方案

报错原因是hex()函数需要传入整数,而你遍历的是字符串类型的字符(比如'H'),无法直接转换。需要先用ord()函数把每个字符转换成对应的ASCII整数,再传入hex()生成十六进制格式字符串。修改后的代码如下:

MS = "Hello"
char_list = list(MS)
p = tuple(hex(ord(c)) for c in char_list)
print(p)

执行后输出:

('0x48', '0x65', '0x6c', '0x6c', '0x6f')

如果只需要数值等价的整数元组(Python中0x48和72是同一个值),可以直接用ord()结果组成元组:

p = tuple(ord(c) for c in char_list)
print(p)  # 输出 (72, 101, 108, 108, 111)

内容的提问来源于stack exchange,提问作者Mohammed Farttoos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:01:00