我有一个整数列表:
lists = [8,7,2]
我希望它是:
result = 872
我可以通过以下方式来实现:
result = 0
for count, i in enumerate(reversed(lists)):
result += i*(10**count)
它起作用了。但我认为应该有另一种更好、更快的方法。提前感谢
发布于 2018-06-12 07:18:53
你可以试试这个
int("".join(list(map(str,lists))))
将所有整数映射到字符串,然后将它们连接起来,并将它们转换回整数。
发布于 2018-06-12 07:22:36
你也可以这样做
from functools import reduce
reduce(lambda x,y: 10*x+y, (lists))
不需要转换成字符串然后再转换回来。
(出于完整性的考虑)当list可能包含大于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)
发布于 2018-06-12 08:12:38
您也可以只对字符串进行换皮操作:
lists=[8, 7, 2]
result = int((str(lists)).strip("[]").replace(", ",""))
https://stackoverflow.com/questions/50807274
复制相似问题