2
pythonistas:哪個更快,哪裏的a
就像[ str(x) for x in list(range(100)) ]
?python:map()或列表理解?
ints = map(int, a)
或者
ints = [ int(x) for x in a ]
假設a
將字符串比較大的列表...
pythonistas:哪個更快,哪裏的a
就像[ str(x) for x in list(range(100)) ]
?python:map()或列表理解?
ints = map(int, a)
或者
ints = [ int(x) for x in a ]
假設a
將字符串比較大的列表...
map
看起來在我的筆記本(快(無拉姆達) Macbook Pro 2014年中,OSX 10.11.4,16GB DDR3 RAM,2.2 GHz Intel Core i7):
與Python測試2.7.10
>>> timeit.timeit("[int(x) for x in range(100)]", number=100000)
1.6301331520080566
>>> timeit.timeit("map(int, range(100))", number=100000)
0.9462239742279053
但是,使用地圖lambda函數是最慢的:
>>> timeit.timeit("map(lambda x: int(x), range(100))", number=100000)
2.285655994415283
地圖會更快,之後,這是個人喜好。地圖發生在C級,一旦你使用沒有使用lambda的地圖和一些內置的方法,它通常會比在列表中做同樣的事情更快comp –
CPython沒有大部分使基準難以用於像C這樣的語言的效果或Java,所以你可以[定時](https://docs.python.org/2/library/timeit.html),並可能得到正確的答案。 – user2357112
閱讀此:http://stackoverflow.com/a/1247490/4941927 我認爲每個人可能會根據您的需要有所幫助。 – Milor123