将带有str
的列表转换为Python中带int
的列表的最简单方法是什么?
例如,我们必须将['1', '2', '3']
转换为[1, 2, 3]
。当然,我们可以使用for
循环,但这太容易了。
答案 0 :(得分:19)
Python 2.x:
map(int, ["1", "2", "3"])
Python 3.x(在3.x中,map
返回一个迭代器,而不是2.x中的列表):
list(map(int, ["1", "2", "3"]))
答案 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)