将整数格式化为十六进制字符串

新手上路,请多包涵

我需要从随机整数列表 (0-255) 中创建一串十六进制数字。每个十六进制数字应由两个字符表示:5 - “05”、16 - “10”等。

例子:

>  Input: [0,1,2,3,127,200,255],
> Output: 000102037fc8ff
>
> ```

我设法想出了:

#!/usr/bin/env python

def format_me(nums): result = “” for i in nums: if i <= 9: result += “0%x” % i else: result += “%x” % i return result

print format_me([0,1,2,3,127,200,255])

”`

然而,这看起来有点尴尬。有更简单的方法吗?

原文由 facha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 319
2 个回答
''.join('%02x'%i for i in input)

原文由 vartec 发布,翻译遵循 CC BY-SA 3.0 许可协议

为了完整起见,使用现代的 .format() 语法:

 >>> numbers = [1, 15, 255]
>>> ''.join('{:02X}'.format(a) for a in numbers)
'010FFF'

原文由 gak 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题