将整数列表转换为整数python

时间:2018-06-11 23:15:44

标签: python python-3.x

我有一个整数列表:

lists = [8,7,2]

我希望它是:

result = 872

我可以通过以下方式完成:

result = 0
for count, i in enumerate(reversed(lists)):
    result += i*(10**count)

有效。但我认为应该有另一种更好更快的方法。 提前致谢

4 个答案:

答案 0 :(得分:4)

您也可以

from functools import reduce
reduce(lambda x,y: 10*x+y, (lists))

无需转换为字符串和返回。

(为了完整起见)当列表可能包含大于9的数字时,您可以执行更复杂但比转换为字符串更快的操作。

from functools import reduce
def combine(x,y):
    temp =y
    if (temp==0): 
        return x*10
    while(temp>0):
        x*=10
        temp//=10
    return x + y

reduce(combine,lists)

答案 1 :(得分:3)

你可以试试这个

int("".join(list(map(str,lists))))

将所有整数映射到字符串然后将它们连接起来并将它们转换回整数。

答案 2 :(得分:2)

您也可以为字符串设置外观:

lists=[8, 7, 2]
result = int((str(lists)).strip("[]").replace(", ",""))

答案 3 :(得分:1)

这是另一种使用int,str和list comprehension的简单方法。

lists = [8,7,2]
result = int("".join([str(l) for l in lists]))