python - Who is the fastest: for, while , str.count -


  # पहला समाधान m = num cnt = 0 जबकि m & gt; 0: यदि m% 10 == 0: cnt Snum में अंक के लिए = cnt + 1 m = m // 10 # दूसरा समाधान cnt = 0 snum = str (num): अगर अंक == "0": cnt = cnt + 1 # तीसरे समाधान cnt = str.count (str (कोड)>  

का उपयोग करके time.clock () , (प्रत्येक समाधान के लिए t1-t2 खोजना) ऐसा हमेशा लगता है कि के लिए सबसे तेज़ है क्या यह सही है? और ऐसा क्यों है?

अनुमोदन str (num)। Count ('0') है सर्वश्रेष्ठ।

बेंचमार्क के लिए उपयोग करें:

  में [303]: समय सारिणी (num)। Count ('0') 1000000 छोरों, सर्वोत्तम 3: 1.38 हमें प्रति पाश में [304]: %% समय ... ... m = num ...: cnt = 0 ...: जबकि एम & gt; 0: ...: यदि मी% 10 == 0: ...: cnt = cnt + 1 ...: m = m // 10 ...: 100000 लूप, सर्वश्रेष्ठ 3: 13.6 हमें प्रति लूप में [ 306]: %% timeit ...: cnt = 0 ...: snum = str (num) ...: snum में अंक के लिए: ...: यदि अंक == '0': ...: cnt + = 1 ...: 100000 लूप, सबसे अच्छा 3: 4.11 हमें प्रति लूप  

Comments