चेतावनी, यह एक सा पुनरावर्ती है;)समय कार्यों
मैं इस सवाल का जवाब: Python:How can i get all the elements in a list before the longest element?
और बाद मैं वहाँ प्रस्तुत जहां एक और जवाब यह है कि तेजी से होना चाहिए (लेखक सोचा, और इसलिए मैंने किया था) । मैंने अलग-अलग समाधानों का समय देने की कोशिश की लेकिन समाधान जो धीमा होना चाहिए वास्तव में तेज़ था। इससे मुझे लगता है कि मेरे कोड में कुछ गड़बड़ है। या यह है?
import string
import random
import time
def solution1(lst):
return lst[:lst.index(max(lst, key=len))]
def solution2(lst):
idx, maxLenStr = max(enumerate(lst), key=lambda x:len(x[1]))
return lst[:idx]
# Create a 100000 elements long list that contains
# random data and random element length
lst = []
for i in range(100000):
s = "".join([random.choice(string.letters+string.digits) for x in range(1, random.randint(1,50))])
lst.append(s)
# Time the first solution
start = time.time()
solution1(lst)
print 'Time for solution1', (time.time() - start)
# Time the second solution
start = time.time()
solution2(lst)
print 'Time for solution2', (time.time() - start)
अद्यतन
किसी को भी उल्लेख है इससे पहले कि मैं क्यों डाल यह एक नया सवाल के रूप में है। प्रश्न मेरे बारे में अधिक जानकारी है कि निष्पादन समय को मापने के तरीके ...
की छंटनी की है इन दोनों कार्यों में एक ही प्रकार नहीं लौटते वस्तु – joaquin
रवींद्र की! बेशक :) धन्यवाद! –
इसे फिक्स्ड। लेकिन यह भी मेरे कोड को तेज़ी से बनाता है ... और मैंने अभी भी सोचा कि समाधान 2 तेज हो जाएगा .. –