如何将字符串列表更改为整数 - Python

时间:2011-08-17 17:38:32

标签: python string integer

  

可能重复:
  How to convert strings into integers in python?

我需要将字符串列表更改为整数列表,如何执行此操作

('1','1','1','1','2')成为(1,1,1,1,2)。

4 个答案:

答案 0 :(得分:8)

使用list comprehensions

strtuple = ('1', '1', '1', '1', '2')
intlist = [int(s) for s in strtuple]

完整性的东西:

由于您的“列表”实际上是tuple,即一个不可变列表,您必须使用生成器表达式和元组构造函数来获取另一个元组:

inttuple = tuple(int(s) for s in strtuple)

我讨论的“生成器表达式”在未包含在构造函数调用中时看起来像这样,并以这种方式返回生成器。

intgenerator = (int(s) for s in strtuple)

答案 1 :(得分:2)

使用map功能。

vals = ('1', '1', '1', '1', '2')
result = tuple(map(int, vals))
print result

输出:

(1, 1, 1, 1, 2)

与列表理解的性能比较:

from timeit import timeit
print timeit("map(int, vals)", "vals = '1', '2', '3', '4'")
print timeit("[int(s) for s in strlist]", "strlist = ('1', '1', '1', '1', '2')")

输出:

3.08675879197
4.08549801721

使用更长的列表:

print timeit("map(int, vals)", "vals = tuple(map(str, range(10000)))", number = 1000)
print timeit("[int(s) for s in strlist]", "strlist = tuple(map(str, range(10000)))", number = 1000)

输出:

6.2849350965
7.36635214811

在这种情况下,(在我的机器上)似乎map方法比列表理解更快。

答案 2 :(得分:2)

map(int, ls)

ls是您的字符串列表。

答案 3 :(得分:0)

你可以使用列表理解,它看起来大致如下:

newList = [int(x) for x in oldList]