python tips for迴圈的小問題

2022-08-15 16:24:12 字數 1298 閱讀 8157

在python中,用for對列表進行遍歷的時候,迭代器中維護的是列表的索引而不是列表的元素。也就是說,for迴圈是對索引進行迭代,如果在for迴圈過程中修改了列表,迭代出來的值是新列表的索引位置,如果索引超過了新列表的範圍,迴圈終止。

例子:

def for_test1():

x = list(range(10))

for index, value in enumerate(x):

print("delete:", x)

print("index:", index, "value:", value)

del x[index]

print("x:", x)

if __name__ == "__main__":

for_test1()

輸出結果:

delete: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

index: 0 value: 0

delete: [1, 2, 3, 4, 5, 6, 7, 8, 9]

index: 1 value: 2

delete: [1, 3, 4, 5, 6, 7, 8, 9]

index: 2 value: 4

delete: [1, 3, 5, 6, 7, 8, 9]

index: 3 value: 6

delete: [1, 3, 5, 7, 8, 9]

index: 4 value: 8

x: [1, 3, 5, 7, 9]

上例中,在對x列表進行遍歷的過程中刪掉其中的元素,可以看到雖然列表被改變了,迴圈的索引仍然是依次遞增的,說明for迴圈是對索引進行迭代,然後依據索引去列表中取值。當索引超出了新列表的範圍,迴圈終止。

1

deffor_test2():

2 x = list(range(10))

3 j = 10

4for i inx:5

print

(i)6

7 j += 189

if__name__ == "

__main__":

10 for_test2()

由於終止條件是索引超過列表範圍,上述的for迴圈不會終止。

結論:

1. 盡量不要在對列表遍歷的過程中,修改列表

2. 如果修改了,記得迴圈過程中索引依次遞增,終止條件是索引超過新列表範圍。

for迴圈 while迴圈

迴圈結構 當重複執行相同的 或者是相似的 時。迴圈三要素 1 迴圈變數的宣告 用於控制迴圈次數的迴圈因子 2 迴圈條件 用於判斷是否執行相同或相似內容 迴圈體 的條件 3 迴圈變數的改變方向 向著迴圈結束的方向改變。1 for迴圈 語法 for 變數的宣告和初始化 迴圈條件 變數的改變方向 執行邏輯...

python while迴圈 for迴圈

1變數的初始化 while 條件2 條件滿足時候 執行該 條件滿足時候 執行該 3變數的更新 1 while 迴圈輸出1 100所有的數 while 迴圈輸出20次我愛你 迴圈輸出1 100累加和 1 100之間所有數的和 1變數的初始化 i 0 sum 0 儲存和 判斷條件 while i 100...

python while 迴圈 if 迴圈

python 程式設計中 while 語句用於迴圈執行程式,即在某條件下,迴圈執行某段程式,以處理需要重複處理的相同任務。其基本形式為 執行語句可以是單個語句或語句塊。判斷條件可以是任何表示式,任何非零 或非空 null 的值均為true。當判斷條件假false時,迴圈結束。執行流程圖如下 prin...