for迴圈在python中有幾點要注意的地方
>>> import time
>>> total = 1
>>> time1 = time.time()
>>> for i in range(10):
... for j in range(10000000):
... total *= i + j
>>> time2 = time.time()
>>> print(time2 - time1)
168.1079998016
vs
>>> import time
>>> total = 1
>>> time3 = time.time()
>>> for i in range(1000000):
... for j in range(10):
... total *= i + j
>>> time4 = time.time()
>>> print(time4 - time3)
186.583000183
上面兩種情形,同樣遍歷兩次for迴圈,第一種方式無論耗時,效能都要比第二種好的多。 原因就是第二種方式,cpu要不停的切換,切換是需要耗時的,而且第二種方式從美觀來說,是不如第一種。
range()函式再遍歷的時候會一次性列表都獲取出來,xrange()會乙個個獲取,如果資料量小時,區別很小,如果資料量特別大時,差別會很大!
import time
total = 1
time1 = time.time()
for i in xrange(10):
for j in xrange(100000000):
total *= i + j
time2 = time.time()
print(time2 - time1)
>>> # 使用xrange函式耗時: 125秒
125.180000067
vs
import time
total = 1
time1 = time.time()
for i in range(10):
for j in range(100000000):
total *= i + j
time2 = time.time()
print(time2 - time1)
>>> # 使用range函式耗時: 167秒
167.417999983
同樣的條件,使用xrange函式無疑比range快些,資料量越大,會越明顯!
上面的這一條主要的安裝python的**規範來說的。按照pep8的規範無疑更推薦這種:
>>> if os_type = "win32":
>>> for i in range(len(one_var)):
>>> ......
>>> else:
>>> for j in range(len(two_var)):
>>> ......
Python迴圈中的else
python迴圈中的else如果此迴圈迴圈完畢,那麼執行else後的語句,如果被break了,則不執行while中的else 正常情況 i 0while i 5 print i i 1else print else clause out put 01 234else clause 因為while迴圈...
python 中else在while迴圈中的用法
else 可以在while和for迴圈中運用,else和while或for搭配使用,不再是條件判斷的含義。而是當while條件不成立時,直接跳出while迴圈,執行else輸出如 count 0 while count 12 if true print yes break count 1 else ...
python的for迴圈中remove或del的坑
a 1,2,3,4,5 for i in a a.remove i print a 2,4 1 當第一次刪除後,後面的元素會前移,此時a 2,3,4,5 第乙個元素可以正常刪除 2 然後指標下一次會指向新列表的第二個元素 即初始狀態的第三個位置 從而初始狀態的第二個位置被跳過了,初始第三個位置被刪除...