将列表的所有元素从long类型转换为字符串的最快方法是什么?
我有:
x = [long(1.123), long(45.123), long(124.124124), ...]
并且需要:
x = ['1.123', '45.123', '124.124124', ...]
我不想迭代整个列表并隐藏每个元素(它会很慢)。
我正在考虑使用numpy
数组。你怎么看待它?
答案 0 :(得分:3)
你必须以某种方式迭代,它可能会非常快:
>>> lst = [123, 456]
>>> map(str, lst)
... ["123", "456"]
或类似地
>>> [str(num) for num in lst]
... ["123", "456"]
无论如何,请注意,long(1.123)
是1L
。
答案 1 :(得分:0)
我的快速比较(IPython):
x_list = range(10000000)
def list1():
y = map(str, x_list)
%timeit list1()
1个循环,最佳3:每循环2.37秒
import numpy as np
x_numpy = np.arange(10000000)
def list2():
y = x_numpy.astype(str, copy=False)
%timeit list2()
1次循环,每次循环3:992 ms
就像我们看到第二个选项更快。你认为呢? :)