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

2022-01-12 00:00:00 python formatting

问题描述

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

例子:

<块引用>

输入:[0,1,2,3,127,200,255],输出:000102037fc8ff

我想出了:

#!/usr/bin/env pythondef format_me(nums):结果 = ""对于我在 nums 中:如果我 <= 9:结果 += "0%x" % i别的:结果 += "%x" % i返回结果打印格式_me([0,1,2,3,127,200,255])

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

解决方案

''.join('%02x'%i for i in input)

I need to create a string of hex digits from a list of random integers (0-255). Each hex digit should be represented by two characters: 5 - "05", 16 - "10", etc.

Example:

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

I've managed to come up with:

#!/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])

However, this looks a bit awkward. Is there a simpler way?

解决方案

''.join('%02x'%i for i in input)

相关文章