将int列表转换为int数

时间:2013-08-23 00:53:50

标签: python algorithm list int converter

用Python编程,我想知道如何转换:

lst = [1,2,3,4]

为:

lst = 1234

我需要使用列表的值

创建一个int

3 个答案:

答案 0 :(得分:5)

不确定你是如何陷入这种困境的,但你可以使用reduce来保持数字移位10

a_list = [1,2,3,4]
reduce(lambda x,y: x*10+y, a_list)

答案 1 :(得分:4)

最简单的方法是将其设为str,然后设为int

>>> lst = [1, 2, 3, 4]
>>> int(''.join(map(str, lst)))
1234

如果列表中的每个元素都是一个数字,您也可以执行类似的操作,

>>> def lst_to_int(l):
...     return sum(d*10**i for i, d in enumerate(reversed(l)))
... 
>>> lst_to_int(lst)
1234

答案 2 :(得分:1)

一种显而易见的方法是将每个数字转换为字符串,连接字符串,然后转换回整数:

>>> numbers = [1, 2, 3, 4]
>>> digits = [str(number) for number in numbers]
>>> digits
['1', '2', '3', '4']
>>> numeral = ''.join(digits)
>>> numeral
'1234'
>>> number = int(numeral)
>>> number
1234

当然,你可以很容易地将这一切合并到一个表达式中:

>>> number = int(''.join(str(number) for number in numbers))

另一个明显的方法是数学:

>>> number = 0
>>> for digit in numbers:
...     number = number * 10 + digit
>>> number
1234

这个表达起来有点困难,所以我会把它作为读者的练习。 (最简单的方法见reduce。)