使用map()将字符串转换为整数

时间:2012-04-13 17:19:08

标签: python

在下面我试图使用map函数将第一个列表转换为整数列表我该如何实现呢?

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] 

4 个答案:

答案 0 :(得分:34)

>>> 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]]

希望能够消除困惑。

答案 1 :(得分:2)

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

您的列表理解中不需要地图。 Map会创建另一个列表,因此您最终会得到一个列表列表。

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

答案 2 :(得分:1)

1。首先,map函数是map(func,iterable) 2.请参见以下示例:

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

当选择x时,例如'13'是一个序列,因此map(int,'13')返回[1,3],因此map(func,iterable)中的可迭代值为字符串。

3。请参见以下示例:

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

地图函数中的可迭代对象是list.so'int'在'13'上以13起作用

答案 3 :(得分:-2)

你可以这样做

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