2012-04-13 26 views
9

在我试图第一个列表转换为使用地图功能的整数列表如何能够做到以下这字符串转换为整数使用地图()

T1 = ['13', '17', '18', '21', '32'] 
print T1 
T3=[map(int, x) for x in T1] 
print T3 
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]] 

Expected is: 

T3=[13,17,18,21,32] 

回答

28
>>> T1 = ['13', '17', '18', '21', '32'] 
>>> T3 = map(int, T1) 
>>> T3 
[13, 17, 18, 21, 32] 

这做同样的事情如:

>>> T3 = [int(x) for x in T1] 
>>> T3 
[13, 17, 18, 21, 32] 

所以你在做什么是

>>> T3 = [[int(letter) for letter in x] for x in T1] 
>>> T3 
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]] 

希望能够消除混乱。

+0

酷感谢..... – Rajeev 2012-04-13 17:21:29

+0

伟大的答案..... – lopezdp 2016-11-06 04:11:27

2
>>> T1 = ['13', '17', '18', '21', '32'] 
>>> print [int(x) for x in T1] 
[13, 17, 18, 21, 32] 

你不需要在你的列表理解内的地图。地图创建另一个列表,所以你最终列出一个列表。

警告:如果字符串被授予数字,这将工作,否则会引发异常。

+0

尼斯感谢..... – Rajeev 2012-04-13 17:24:02

-4

你可以像下面这样做

>>>T1 = ['13', '17', '18', '21', '32'] 
>>>list(map(int,T1)) 
+1

这是怎么回事任何不同jamylak的[答案] (https://stackoverflow.com/a/10145364/369450)? – cpburnz 2018-02-24 18:30:13