Python字符串操作。将角色添加到第五位

时间:2012-06-29 00:57:11

标签: python string list hex

我认为表达问题的最佳方式是展示一个例子:

我有一个十六进制数字,比如2f。我想取这个十六进制数,然后在第五位加一个'9',然后是零。所以在这种情况下我想要9002f。从这里我将把它转换回十进制。

我认为最好的方法是使用列表并列出['9','0','0','0','0']列表和['2','f']列表,并以某种方式覆盖9000列表。

你们有什么想法?

3 个答案:

答案 0 :(得分:7)

为什么要进行字符串操作?听起来你想用十六进制数来做数学运算:

h = '2f'
h_int = int(h, 16)
h_int += 0x90000

如果您确实需要获取字符串,则可以将其转换回字符串:

"%x" % h_int

答案 1 :(得分:0)

做你想做的事

def fillhex(h, n, pos):
    return n+h.zfill(pos-len(n))

fillhex('2f', '9', 5)
9002f

fillhex('4A', '9', 5)
9004A

fillhex('F', '9', 5)
9000F

虽然@NedBatchelder在答案中显示了更简单的数字基数转换方式。

答案 2 :(得分:0)

有趣的要求,但适用于变量位置:

>>> def place_n(a, b, pos):
    return '{0}{1:0>{2}}'.format(a, b, pos - len(a))

>>> place_n('9', '2f', 5)
'9002f'