由於代表人數的基礎b
數字整數list
,我怎麼轉換這個list
到int
任何b
最有效?列表爲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
有沒有更好的方法?
請參閱http://stackoverflow.com/questions/2267362/convert-integer-to-a-string-in-a-given-numeric-base-in-python – mockinterface
@mockinterface:看起來像什麼是相反的OP正在試圖做... – geoffspear
如何定義數字在任意基數中的表示(尤其是基數> 10)的數字? – njzk2