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