用Python编程,我想知道如何转换:
lst = [1,2,3,4]
到:
lst = 1234
我需要用列表的值创建一个 int
不知道你是如何陷入这种困境的,但你可以用reduce
10 来不断移动数字
a_list = [1,2,3,4]
reduce(lambda x,y: x*10+y, a_list)
最简单的方法是让它成为一个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
一种明显的方法是将每个数字转换为字符串,连接字符串,然后转换回整数:
>>> 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
最简单的方法。)