如果给定一个代表数字的列表,其中整数是以基础b
为基础的。如何在任何最有效地将此list
转换为int
?
numlist = [1, 2, 3, 4, 5]
def list2int(numList, b):
if b == 10: return int(''.join(map(str, numList)))
else: ?
print list2int(numList, 7)
>>> 3267
我只能想到幼稚的方法来完成这个任务,但这种方法的可扩展性非常差。
def list2int(numList, b):
num = 0
for i, ii in enumerate(numList): num += ii * b**(len(numList) - i - 1)
return num
有更好的方法吗?