【編測編學】零基礎學python_09_列表(操作列表之遍歷列表)

bcbxhome發表於2020-11-24
遍歷整個列表
你經常需要遍歷列表的所有元素,對每個元素執行相同的操作。例如,在遊戲中,可能需要將每個介面元素平移相同的距離;對於包含數字的列表,可能需要對每個元素執行相同的統計運算;在網站中,可能需要顯示文章列表中的每個標題。需要對列表中的每個元素都執行相同的操作時,可使用Python中的for 迴圈。 

假設我們有一個魔術師名單,需要將其中每個魔術師的名字都列印出來。為此,我們可以分別獲取名單中的每個名字,但這種做法會導致多個問題。例如,如果名單很長,將包含大量重複的程式碼。另外,每當名單的長度發生變化時,都必須修改程式碼。透過使用for 迴圈,可讓Python去處理這些問題。 

下面使用for 迴圈來列印魔術師名單中的所有名字: 
  1. magicians = ['alice', 'david', 'carolina']
  2. for magician in magicians:
  3.     print(magician)
複製程式碼
【編測編學】零基礎學python_09_列表(操作列表之遍歷列表) 首先,我們像第3章那樣定義了一個列表,接下來我們定義了一個for 迴圈,這行程式碼讓Python從列表magicians 中取出一個名字,並將其儲存在變 量magician 中。最後,我們讓Python列印前面儲存到變數magician 中的名字。這樣,對於列表中的每個名字,Python都將重複執行2、3行的程式碼行。你可以這 
樣解讀這些程式碼:對於列表magicians 中的每位魔術師,都將其名字列印出來。輸出很簡單,就是列表中所有的姓名: 

1. 入地 研究 迴圈
迴圈這種概念很重要,因為它是讓計算機自動完成重複工作的常見方式之一。例如,在前面的magicians.py中使用的簡單迴圈中,Python將首先讀取其中的第一行程式碼: 
for magician in magicians:
這行程式碼讓Python獲取列表magicians 中的第一個值('alice' ),並將其儲存到變數magician 中。接下來,Python讀取下一行程式碼: 
print(magician) 
它讓Python列印magician 的值——依然是'alice' 。鑑於該列表還包含其他值,Python返回到迴圈的第一行: 
for magician in magicians: 
Python獲取列表中的下一個名字——'david' ,並將其儲存到變數magician 中,再執行下面這行程式碼: 
print(magician) 
Python再次列印變數magician 的值——當前為'david' 。接下來,Python再次執行整個迴圈,對列表中的最後一個值——'carolina' 進行處理。至此,列表中沒有其他的值 了,因此Python接著執行程式的下一行程式碼。在這個示例中,for 迴圈後面沒有其他的程式碼,因此程式就此結束。 



剛開始使用迴圈時請牢記,對列表中的每個元素,都將執行迴圈指定的步驟,而不管列表包含多少個元素。如果列表包含一百萬個元素,Python就重複執行指定的步驟一百萬次,  且通常速度非常快。 
另外,編寫for 迴圈時,對於用於儲存列表中每個值的臨時變數,可指定任何名稱。然而,選擇描述單個列表元素的有意義的名稱大有幫助。例如,對於小貓列表、小狗列表和 一般性列表,像下面這樣編寫for 迴圈的第一行程式碼是不錯的選擇: 
  1. for cat in cats:
  2. for dog in dogs:
  3. for item in list_of_items:
複製程式碼
這些命名約定有助於你明白for 迴圈中將對每個元素執行的操作。使用單數和複數式名稱,可幫助你判斷程式碼段處理的是單個列表元素還是整個列表。 



2. for 循 環中 執行 更多 的操 作 
在for 迴圈中,可對每個元素執行任何操作。下面來擴充套件前面的示例,對於每位魔術師,都列印一條訊息,指出他的表演太精彩了。 
  1. magicians = ['alice', 'david', 'carolina']
  2. for magician in magicians:
  3.         print(magician.title() + ", that was a great trick!")
複製程式碼
相比於前一個示例,唯一的不同是對於每位魔術師,都列印了一條以其名字為抬頭的訊息。這個迴圈第一次迭代時,變數magician 的值為'alice' ,因此Python列印 
的第一條訊息的抬頭為'Alice' 。第二次迭代時,訊息的抬頭為'David' ,而第三次迭代時,抬頭為'Carolina' 。 
下面的輸出表明,對於列表中的每位魔術師,都列印了一條個性化訊息: 
【編測編學】零基礎學python_09_列表(操作列表之遍歷列表) 
在for 迴圈中,想包含多少行程式碼都可以。在程式碼行for magician in magicians 後面,每個縮排的程式碼行都是迴圈的一部分,且將針對列表中的每個值都執行一次。因 
此,可對列表中的每個值執行任意次數的操作。 
下面再新增一行程式碼,告訴每位魔術師,我們期待他的下一次表演: 
  1. magicians = ['alice', 'david', 'carolina']
  2. for magician in magicians:
  3.        print(magician.title() + ", that was a great trick!")
  4.        print("I can't wait to see your next trick, " + magician.title() + ".\n")
複製程式碼
由於兩條print 語句都縮排了,因此它們都將針對列表中的每位魔術師執行一次。第二條print 語句中的換行符"\n" 在每次迭代結束後都插入一個空行,從而整潔地 
將針對各位魔術師的訊息編組: 
【編測編學】零基礎學python_09_列表(操作列表之遍歷列表)  在for 迴圈中,想包含多少行程式碼都可以。實際上,你會發現使用for 迴圈對每個元素執行眾多不同的操作很有用。 



3. 在for 循 環結 束後 執行 一些 操作
for 迴圈結束後再怎麼做呢?通常,你需要提供總結性輸出或接著執行程式必須完成的其他任務。 
在for 迴圈後面,沒有縮排的程式碼都只執行一次,而不會重複執行。下面來列印一條向全體魔術師致謝的訊息,感謝他們的精彩表演。想要在列印給各位魔術師的訊息後面列印  一條給全體魔術師的致謝訊息,需要將相應的程式碼放在for 迴圈後面,且不縮排:
  1. magicians = ['alice', 'david', 'carolina']
  2. for magician in magicians:
  3.         print(magician.title() + ", that was a great trick!")
  4.         print("I can't wait to see your next trick, " + magician.title() + ".\n")
  5. print("Thank you, everyone. That was a great magic show!")
複製程式碼

你在前面看到了,開頭兩條print 語句針對列表中每位魔術師重複執行。然而,由於第三條print 語句沒有縮排,因此只執行一次: 
【編測編學】零基礎學python_09_列表(操作列表之遍歷列表) 
使用for 迴圈處理資料是一種對資料集執行整體操作的不錯的方式。例如,你可能使用for 迴圈來初始化遊戲——遍歷角色列表,將每個角色都顯示到螢幕上;再在迴圈後面添  加一個不縮排的程式碼塊,在螢幕上繪製所有角色後顯示一個PlayNow。



1.1.png

1.2.png

1.3.png

1.4.png


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985967/viewspace-2736315/,如需轉載,請註明出處,否則將追究法律責任。

相關文章