铸造程序之间的性能比较

时间:2016-09-06 21:09:47

标签: python casting

我正在从一个文件中读取行并希望将它们转换为整数列表。该文件有一百万行。所以,我只是想知道哪个程序会使它更快.say, lst=['10','12','31','41','15']是从文件中读取的当前行。 我可以使用地图功能进行投射,如 - lst1=map(int,lst) 或使用for功能,如 - lst2=[int(x) for x in lst] 哪一个是最有效和最快的方式?

1 个答案:

答案 0 :(得分:0)

[int(x, 10) for x in lst]至少比你的两种方式快得多:

>>> from timeit import timeit
>>> setup = "lst = ['10','12','31','41','15']"

>>> timeit('map(int, lst)', setup)
4.454881024529442

>>> timeit('[int(x) for x in lst]', setup)
4.7153410495946275

>>> timeit('[int(x, 10) for x in lst]', setup)
1.6508196962672343

使用Python 2.7.11测试(我假设你使用Python 2,否则你的lst1=map(...)会产生误导)。