python中的列表到int

python中的列表到int,python,integer,Python,Integer,我想知道在python中是否有一种将数字列表转换为整数的好方法。也就是说,如果我有mylist=[1,5,9],我想做一些类似于intmylist的事情来获得159的输出。我假设输入列表只有数字,我想用它来创建一个数字。目前我拥有的最好的产品是: mylist = [1, 5, 9] num = 0 for i in range(len(mylist)): num += mylist[i] * 10 ** (len(mylist) - i - 1) 这应该可以,但感觉太明确了。有没有更

我想知道在python中是否有一种将数字列表转换为整数的好方法。也就是说,如果我有mylist=[1,5,9],我想做一些类似于intmylist的事情来获得159的输出。我假设输入列表只有数字,我想用它来创建一个数字。目前我拥有的最好的产品是:

mylist = [1, 5, 9]
num = 0
for i in range(len(mylist)):
    num += mylist[i] * 10 ** (len(mylist) - i - 1)

这应该可以,但感觉太明确了。有没有更整洁/更好的方法呢?

目前我能想到的最好方法是:

mylist = [1, 5, 9]
num = 0
for i in range(len(mylist)):
    num += mylist[i] * 10 ** (len(mylist) - i - 1)
试试这个:

列表=[1,2,3] 字符串= 对于列表中的num: 字符串=字符串+字符串 结果=intstring 打印结果
您可能需要重新考虑您的数据是如何进入该结构并修复它的

但您可以轻松地将其组合为字符串并对其调用int:


映射功能通常更快。我使用了lambda,但您也可以创建自己的函数,而不是lambda

mylist = [1, 5, 9]
N = len(mylist)
sum(list(map(lambda x : x[0]*10**(N-x[1]-1),  enumerate(mylist))))
使用functools.reduce:


这是一个简单的实现方法。

num=int.join[stritem for item in mylist]这不是与您问题中的代码完全相同吗?@Chris是的。我只是想,既然它完成了任务,我应该补充一下作为答案。
mylist = [1, 5, 9]
N = len(mylist)
sum(list(map(lambda x : x[0]*10**(N-x[1]-1),  enumerate(mylist))))
from functools import reduce

assert reduce(lambda a, x: 10*a + x, [1,5,9]) == 159