如何将字符串列表更改为整数- Python [重复]

x759pob2  于 2023-04-04  发布在  Python
关注(0)|答案(4)|浏览(96)

此问题在此处已有答案

Convert all strings in a list to integers [duplicate](11个答案)
40分钟前关闭
我需要把一个字符串列表变成一个整数列表,怎么做

('1',' 1','1',' 1','2')转换为(1,1,1,1,2)。

pzfprimi

pzfprimi1#

使用列表解析:

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

完整性说明:

因为你的“list”实际上是一个元组,即一个不可变的列表,你必须使用一个生成器表达式和一个元组构造器来获取另一个元组:

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

我所说的“生成器表达式”在没有 Package 在构造函数调用中时看起来像这样,并以这种方式返回生成器。

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

zvms9eto2#

map(int, ls)

其中ls是字符串列表。

zzoitvuj

zzoitvuj3#

使用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方法比列表理解更快。

zf9nrax1

zf9nrax14#

你可以使用列表解析,它看起来大致像这样:

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

相关问题