我正在尝试在十六进制范围之间获取随机十六进制值:
random.randint(0xfff000, 0xffffff)
我从 JSON 中得到了范围限制,作为一个字符串。
{"range": "0xfff000,0xffffff"}
如何将这些字符串(拆分后)转换为十六进制值?
int()
使用基数为的内置函数16
:
>>> int('0xfff000', 16)
16773120
>>> int('0xfff000', 16) == 0xfff000
True
您可以利用以下内容:
from random import randint
d = {"range": "0xfff000,0xffffff"}
print randint(*(int(i, 16) for i in d['range'].split(',')))
# 16775837
然后扩展它以自定义您自己的随机整数函数,例如:
from random import randint
from functools import partial
d = {"range": "0xfff000,0xffffff"}
my_random = partial(randint, *(int(i, 16) for i in d['range'].split(',')))
print [my_random() for n in range(5)]
# [16776381, 16774349, 16776922, 16773212, 16775873]