अब्बाफी द्वारा पोस्ट के जवाब में समय की त्वरित तुलना:
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
यदि-तब लगभग किसी भी की तुलना में तेजी से परिमाण का क्रम है!