2017-07-28 99 views
-2

我有这样一个清单:转换字符串列表到一个单一的整数

["1", "8", "9", "5", "6"] 

并且想把它转换成一个整数。 所以期望的输出是这样的:18956

有没有一个优雅的方法来做到这一点?

进入我脑海的唯一方法是通过列表并将数字乘以所需的十次幂,然后加起来。但我相信有一个更好的方法,不是吗? 感谢您的帮助。

+3

'INT( '' 加入([ “1”, “8”, “9”, “5”, “6”]))' –

+0

感谢您的快速帮助。对不起,我无法自己得到这个解决方案... – Cyaena

回答

5

这你想要做什么:

它加入每一位到使用''(空字符串)作为分隔一个字符串,产生'18956'。

然后它的字符串转换为使用int()工厂功能的整数

int(''.join(["1", "8", "9", "5", "6"])) 
2
int(''.join(["1", "8", "9", "5", "6"])) 

这真的很容易,但我要解释一下:

首先,join将列表中的每个元素,并创建一个字符串的所有元素“加入”由分隔字符;因为我们不需要任何分隔符,所以我们放入''

其次,只有结果字符串"18956"和强制转换为int

0

尝试

>>> a = ["1", "8", "9", "5", "6"] 
>>> num = "".join(a) 
>>> num 
'18956' 
>>> number = int(num) 
>>> number 
18956 
1

列表:

l = ["1", "8", "9", "5", "6"] 

方法1:

print(int(''.join(map(str,l)))) 

方法2:

digit = lambda nums: int(''.join(i for i in nums)) 
print(digit(l)) 

两个输出都相同:

18956 
18956 
+0

为什么当他们已经是字符串时,你会在数字上调用'str'函数? – JohanL

+0

是的。编辑@JohanL – Inconnu

相关问题