将带有字符串的列表转换为带有int的列表的最简单方法是什么?

时间:2010-03-11 11:16:56

标签: python string integer

将带有str的列表转换为Python中带int的列表的最简单方法是什么? 例如,我们必须将['1', '2', '3']转换为[1, 2, 3]。当然,我们可以使用for循环,但这太容易了。

5 个答案:

答案 0 :(得分:19)

Python 2.x:

map(int, ["1", "2", "3"])

Python 3.x(在3.x中,map返回一个迭代器,而不是2.x中的列表):

list(map(int, ["1", "2", "3"]))

map文档:2.63.1

答案 1 :(得分:17)

[int(i) for i in str_list]

答案 2 :(得分:4)

您还可以使用列表推导:

new = [int(i) for i in old]

map()内置函数:

new = map(int, old)

或者itertools.imap()函数,在某些情况下会提供加速,但在这种情况下只是吐出一个迭代器,你需要转换为一个列表(所以它可能需要相同的量)时间):

import itertools as it
new = list(it.imap(int, old))

答案 3 :(得分:2)

如果你的字符串不仅仅是数字(即你),你可以使用:

new = [int(i) for i in ["1", "2", "3"] if isinstance(i, int) or isinstance(i, (str, unicode)) and i.isnumeric()]

答案 4 :(得分:1)

如果是数组并安装了numpy。我们也可以使用下面的代码。

import numpy as np

np.array(['1', '2', '3'],dtype=int)