给定一个 list
整数表示基数 b
中数字的数字,我如何将此 list
转换为 int
对任何 b
最有效?
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
有没有更好的方法?
最佳答案
你可以使用reduce
:
In [3]: reduce(lambda x,y:7*x+y, numlist)
Out[3]: 3267
其中 7
是基数。
关于python - int 的任意基数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21782180/