আব্বাফির পোস্টের প্রতিক্রিয়ায় সময়ের সাথে দ্রুত তুলনা:
import timeit
def func1():
phrase = 'Lucky Dog'
return any(i in 'LD' for i in phrase)
def func2():
phrase = 'Lucky Dog'
if ('L' in phrase) or ('D' in phrase):
return True
else:
return False
if __name__ == '__main__':
func1_time = timeit.timeit(func1, number=100000)
func2_time = timeit.timeit(func2, number=100000)
print('Func1 Time: {0}\nFunc2 Time: {1}'.format(func1_time, func2_time))
আউটপুট:
Func1 Time: 0.0737484362111
Func2 Time: 0.0125144964371
সুতরাং কোডটি যে কোনওটির সাথে আরও কমপ্যাক্ট, তবে শর্তযুক্তের সাথে দ্রুত।
সম্পাদনা করুন: টিএল; ডিআর - দীর্ঘ স্ট্রিংয়ের জন্য, যদি-তবে এখনও যে কোনওটির চেয়ে বেশি দ্রুত!
আমি মন্তব্যগুলিতে উত্থাপিত কিছু বৈধ পয়েন্টের ভিত্তিতে দীর্ঘ র্যান্ডম স্ট্রিংয়ের জন্য সময়টির তুলনা করার সিদ্ধান্ত নিয়েছি:
# Tested in Python 2.7.14
import timeit
from string import ascii_letters
from random import choice
def create_random_string(length=1000):
random_list = [choice(ascii_letters) for x in range(length)]
return ''.join(random_list)
def function_using_any(phrase):
return any(i in 'LD' for i in phrase)
def function_using_if_then(phrase):
if ('L' in phrase) or ('D' in phrase):
return True
else:
return False
if __name__ == '__main__':
random_string = create_random_string(length=2000)
func1_time = timeit.timeit(stmt="function_using_any(random_string)",
setup="from __main__ import function_using_any, random_string",
number=200000)
func2_time = timeit.timeit(stmt="function_using_if_then(random_string)",
setup="from __main__ import function_using_if_then, random_string",
number=200000)
print('Time for function using any: {0}\nTime for function using if-then: {1}'.format(func1_time, func2_time))
আউটপুট:
Time for function using any: 0.1342546
Time for function using if-then: 0.0201827
যদি-তবে প্রায় কোনও তুলনায় দ্রুততার ক্রম!