जब मैंअजगर में क्यों अगर रैंक: अगर तुलना में तेजी है रैंक = 0:
for i in range(0, 100):
rank = ranks[i]
if rank != 0:
pass
को
बदल दिया है:
for i in range(0, 100):
rank = ranks[i]
if rank:
pass
मैंने पाया दूसरा कोड और अधिक कुशल है, क्यों?
बेंच इसे चिह्नित करता है, और मेरी स्थिति में रैंक पूर्णांक की एक संख्यात्मक सरणी है। अंतर बहुत अधिक है।
import numpy as np
import time
N = 1000000
ranks = np.random.random_integers(0, 10, N)
start = time.time()
for i in range(0, N):
rank = ranks[i]
if rank != 0:
pass
print time.time() - start
start = time.time()
for i in range(0, N):
rank = ranks[i]
if rank:
pass
print time.time() - start
start = time.time()
for i in range(0, N):
if i != 0:
pass
print time.time() - start
start = time.time()
for i in range(0, N):
if i:
pass
print time.time() - start
उत्पादन:
1.15917396545
0.45020198822
0.123136997223
0.122531175613
आप कैसे मिला है? क्या आपने बेंचमार्क किया था? – zsong
मुझे थोड़ा बढ़ावा मिलेगा, क्योंकि कम से कम काम पाइथन में होता है और इसमें से अधिकतर अंतर्निहित तरीकों से होता है, लेकिन वास्तविक कार्यक्रम में, यह शायद बड़ा नहीं होगा। (यह अभी भी करने लायक है, क्योंकि यह मानक शैली और कम कोड है।) – user2357112