如何对Python中字符串格式的十六进制列表求和得到十六进制结果
十六进制字符串列表求和实现方法
错误原因
- 直接调用
sum(lst)报错:列表中元素均为字符串类型的十六进制值,无法直接和整数执行加法运算,因此触发TypeError。 - 转换后结果不符预期:你此前转int时大概率未指定进制参数
base=16,int函数默认按十进制规则解析字符串,无法正确识别十六进制字符,导致转换结果错误。
正确实现代码
lst = ['0x0', '0x0', '0x1', '0x1', '0x1', '0x1', '0x1', '0xf', '0xf', '0xf'] # 转换每个元素为16进制对应的整数后求和,再转回十六进制格式 total_hex = hex(sum(int(item, 16) for item in lst)) print(total_hex)
输出说明
你给出的当前示例列表计算结果为0x32,如果你预期得到0x44,请检查列表中的十六进制元素是否和你实际使用的一致。
内容的提问来源于stack exchange,提问作者anu
相关产品推荐
相关产品推荐

