【发布时间】:2011-01-26 08:01:49
【问题描述】:
在 Python 中将str 的列表转换为int 的列表的最简单方法是什么?
例如,我们必须将['1', '2', '3'] 转换为[1, 2, 3]。当然,我们可以使用for 循环,但是太简单了。
【问题讨论】:
在 Python 中将str 的列表转换为int 的列表的最简单方法是什么?
例如,我们必须将['1', '2', '3'] 转换为[1, 2, 3]。当然,我们可以使用for 循环,但是太简单了。
【问题讨论】:
如果它是数组并且已经安装了 numpy.我们也可以使用下面的代码。
import numpy as np
np.array(['1', '2', '3'],dtype=int)
【讨论】:
如果您的字符串不仅仅是数字(即 u''),您可以使用:
new = [int(i) for i in ["1", "2", "3"] if isinstance(i, int) or isinstance(i, (str, unicode)) and i.isnumeric()]
【讨论】:
[int(i) for i in str_list]
【讨论】:
map,但是生成器的可读性更强。
你也可以使用列表推导:
new = [int(i) for i in old]
或map() 内置函数:
new = map(int, old)
或者 itertools.imap() 函数,它在某些情况下会提供加速,但在这种情况下只是吐出一个迭代器,您需要将它转换为一个列表(因此它可能需要相同的时间) :
import itertools as it
new = list(it.imap(int, old))
【讨论】: