ভেবেছিলাম আমি উত্তরগুলি একীভূত করব এবং কিছু দেখাব timeit
ফলাফল ।
পাইথন 2 এটিতে বেশ খারাপ চুষে, তবে map
বোঝার চেয়ে কিছুটা দ্রুত।
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import timeit
>>> setup = """import random
random.seed(10)
l = [str(random.randint(0, 99)) for i in range(100)]"""
>>> timeit.timeit('[int(v) for v in l]', setup)
116.25092001434314
>>> timeit.timeit('map(int, l)', setup)
106.66044823117454
পাইথন 3 নিজে থেকে 4x এরও বেশি দ্রুত, তবে map
জেনারেটর অবজেক্টকে একটি তালিকায় রূপান্তর করা বোধগমণের চেয়ে এখনও দ্রুত এবং map
জেনারেটরটি আনপ্যাক করে তালিকা তৈরি করা (ধন্যবাদ আর্টেম!) এখনও কিছুটা দ্রুত is
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import timeit
>>> setup = """import random
random.seed(10)
l = [str(random.randint(0, 99)) for i in range(100)]"""
>>> timeit.timeit('[int(v) for v in l]', setup)
25.133059591551955
>>> timeit.timeit('list(map(int, l))', setup)
19.705547827217515
>>> timeit.timeit('[*map(int, l)]', setup)
19.45838406513076
দ্রষ্টব্য: পাইথন 3-তে 4 টি উপাদান ক্রসওভার পয়েন্ট বলে মনে হচ্ছে (পাইথন 2-এ 3) যেখানে বোধগম্যতা কিছুটা দ্রুত, যদিও জেনারেটরটি প্যাক করা এখনও 1 টিরও বেশি উপাদানগুলির তালিকাগুলির তুলনায় দ্রুত still