-2

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

lst = [1,2,3,4]

到:

lst = 1234

我需要用列表的值创建一个 int

4

3 回答 3

5

不知道你是如何陷入这种困境的,但你可以用reduce10 来不断移动数字

a_list = [1,2,3,4]
reduce(lambda x,y: x*10+y, a_list)
于 2013-08-23T01:00:56.747 回答
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
于 2013-08-23T01:00:09.947 回答
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最简单的方法。)

于 2013-08-23T00:59:12.730 回答