python - int 的任意基数字列表

标签 python list int base

给定一个 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/

相关文章:

python - 使用 Ansible 从命令行渲染模板

c - 将节点附加到指针数组

c++ - 整数没有正确递增

java - 从 float 转换为整数

python - 在Python列表理解的if子句中进行多次逻辑比较的最佳方法?

可通过迭代器和索引访问的 Python 类

python - 使用函数从指定索引开始对 Python 中不同长度的列表求和

java - 将 List<T> 中的平均值作为单个 T 对象返回

android - 删除文件并从列表中删除其名称

iphone - 将字符串转换为 int-objective c