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

我需要从随机整数 (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])

但是,这看起来有点尴尬。有没有更简单的方法?

最佳答案

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

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

https://stackoverflow.com/questions/5661725/

相关文章:

c - 'printf' 在 C 中带有前导零

java - 格式化带前导符号的数字

c - 在 C 中打印十六进制的前导零

java - 最好的 Eclipse 代码格式化程序?

php - 在 PHP 中打印货币数字格式

python - 使用 Python 减去两个 UNIX 时间戳时,如何产生人类可读的差异?

c# - 如何将 bool 值一般格式化为是/否字符串?

c - 什么是 scanf ("%*s") 和 scanf ("%*d") 格式标识符?

java - 如何在 Java 中计算时间跨度并格式化输出?

java - Eclipse 在哪里存储首选项?