我有一个整数列表:
lists = [8,7,2]
我希望它是:
result = 872
我可以通过以下方式完成:
result = 0
for count, i in enumerate(reversed(lists)):
result += i*(10**count)
有效。但我认为应该有另一种更好更快的方法。 提前致谢
答案 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]))