Python中for迴圈中的幾點注意事項

2021-08-21 20:24:15 字數 1678 閱讀 5584

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 然後指標下一次會指向新列表的第二個元素 即初始狀態的第三個位置 從而初始狀態的第二個位置被跳過了,初始第三個位置被刪除...