在下面我试图使用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]
答案 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))