python列表的遍歷與循環


在游戲中,可能需要將每個界面元素平移相同的距離;

對於包含數字的列表,可能需要對每個元素執行相同的統計運算;

在網站中,可能需要顯示文章列表中的每個標題。

經常需要遍歷列表的所有元素,對每個元素執行相同的操作。

需要對列表中的每個元素都執行相同的操作時,可使用Python中的for循環。

遍歷整個列表

假設有一個魔術師名單,需要將其中每個魔術師的名字都打印出來。為此,可以分別獲取名單中的每個名字,但這種做法會導致多個問題。

例如,如果名單很長,將包含大量重復的代碼。

另外,每當名單的長度發生變化時,都必須修改代碼。

通過使用for循環,可讓Python去處理這些問題。

下面使用for循環來打印魔術師名單中的所有名字:

magicians = ['alice', 'david', 'carolina']

for magician in magicians:

    print(magician)

首先定義一個列表定義一個for循環從列表magicians中取出一個名字,並將其存儲在變量magician中。最后,打印存儲到變量magician中的名字

>>>

alice

david

carolina

>>> 

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 循環的第一行代碼是不錯的選擇:

for cat in cats:

for dog in dogs:

for item in list_of_items:

這些命名約定有助於明白for循環中將對每個元素執行的操作。

使用單數和復數式名稱,可幫助判斷代碼段處理的是單個列表元素還是整個列表

 

for循環中,可對每個元素執行任何操作。下面來擴展前面的示例,對於每位魔術師,都打印一條消息,指出他的表演太精彩了。

 

magicians = ['alice', 'david', 'carolina']

 

for magician in magicians:

 

    print(magician.title() + ", that was a great trick!")  

 

相比於前一個示例,唯一的不同是對於每位魔術師,都打印了一條以其名字為抬頭的消息。

這個循環第一次迭代時,變量magician的值為'alice' ,因此Python打印的第一條消息的抬頭為'Alice'

第二次迭代時,消息的抬頭為'David' ,而第三次迭代時,抬頭為'Carolina'

 

下面的輸出表明,對於列表中的每位魔術師,都打印了一條個性化消息:

 

>>>

 

Alice, that was a great trick!

 

David, that was a great trick!

 

Carolina, that was a great trick!

 

>>>

 

for循環中,想包含多少行代碼都可以。在代碼行for magician in magicians后面,每個縮進的代碼行都是循環的一部分,且將針對列表中的每個值都執行一次。

因此,可對列表中的每個值執行任意次數的操作。

 

下面再添加一行代碼,告訴每位魔術師,我們期待他的下一次表演:

 

magicians = ['alice', 'david', 'carolina']

 

for magician in magicians:

 

    print(magician.title() + ", that was a great trick!")  

 

    print("I can't wait to see your next trick, " + magician.title() + ".\n")

 

由於兩條print語句都縮進了,因此它們都將針對列表中的每位魔術師執行一次。

第二條print語句中的換行符"\n"在每次迭代結束后都插入一個空行,從而整潔地將針對各位魔術師的消息編組:

 

>>>

 

Alice, that was a great trick!

 

I can't wait to see your next trick, Alice.

 

 

 

David, that was a great trick!

 

I can't wait to see your next trick, David.

 

 

 

Carolina, that was a great trick!

 

I can't wait to see your next trick, Carolina.

 

>>> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM