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

遍歷整個列表
你常常須要遍歷列表的全部元素,對每一個元素執行相同的操做。例如,在遊戲中,可能須要將每一個界面元素平移相同的距離;對於包含數字的列表,可能須要對每一個元素執行相同的統計運算;在網站中,可能須要顯示文章列表中的每一個標題。須要對列表中的每一個元素都執行相同的操做時,可以使用Python中的for 循環。 python

假設咱們有一個魔術師名單,須要將其中每一個魔術師的名字都打印出來。爲此,咱們能夠分別獲取名單中的每一個名字,但這種作法會致使多個問題。例如,若是名單很長,將包含大量重複的代碼。另外,每當名單的長度發生變化時,都必須修改代碼。經過使用for 循環,可以讓Python去處理這些問題。 ide

下面使用for 循環來打印魔術師名單中的全部名字:
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
複製代碼
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)
首先,咱們像第3章那樣定義了一個列表,接下來咱們定義了一個for 循環,這行代碼讓Python從列表magicians 中取出一個名字,並將其存儲在變量magician 中。最後,咱們讓Python打印前面存儲到變量magician 中的名字。這樣,對於列表中的每一個名字,Python都將重複執行二、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 循環後面沒有其餘的代碼,所以程序就此結束。 3d

剛開始使用循環時請牢記,對列表中的每一個元素,都將執行循環指定的步驟,而無論列表包含多少個元素。若是列表包含一百萬個元素,Python就重複執行指定的步驟一百萬次, 且一般速度很是快。
另外,編寫for 循環時,對於用於存儲列表中每一個值的臨時變量,可指定任何名稱。然而,選擇描述單個列表元素的有意義的名稱大有幫助。例如,對於小貓列表、小狗列表和通常性列表,像下面這樣編寫for 循環的第一行代碼是不錯的選擇:
for cat in cats:
for dog in dogs:
for item in list_of_items:
複製代碼
這些命名約定有助於你明白for 循環中將對每一個元素執行的操做。使用單數和複數式名稱,可幫助你判斷代碼段處理的是單個列表元素仍是整個列表。
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)blog

2.在for 循環中執行更多的操做
在for 循環中,可對每一個元素執行任何操做。下面來擴展前面的示例,對於每位魔術師,都打印一條消息,指出他的表演太精彩了。
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")
複製代碼
相比於前一個示例,惟一的不一樣是對於每位魔術師,都打印了一條以其名字爲擡頭的消息。這個循環第一次迭代時,變量magician 的值爲'alice' ,所以Python打印
的第一條消息的擡頭爲'Alice' 。第二次迭代時,消息的擡頭爲'David' ,而第三次迭代時,擡頭爲'Carolina' 。
下面的輸出代表,對於列表中的每位魔術師,都打印了一條個性化消息: 遊戲

在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" 在每次迭代結束後都插入一個空行,從而整潔地
將針對各位魔術師的消息編組:
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)
在for 循環中,想包含多少行代碼均可以。實際上,你會發現使用for 循環對每一個元素執行衆多不一樣的操做頗有用。 ci

3.在for 循環結束後執行一些操做
for 循環結束後再怎麼作呢?一般,你須要提供總結性輸出或接着執行程序必須完成的其餘任務。
在for 循環後面,沒有縮進的代碼都只執行一次,而不會重複執行。下面來打印一條向全體魔術師致謝的消息,感謝他們的精彩表演。想要在打印給各位魔術師的消息後面打印 一條給全體魔術師的致謝消息,須要將相應的代碼放在for 循環後面,且不縮進:
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("Thank you, everyone. That was a great magic show!")
複製代碼it

你在前面看到了,開頭兩條print 語句針對列表中每位魔術師重複執行。然而,因爲第三條print 語句沒有縮進,所以只執行一次:
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)
使用for 循環處理數據是一種對數據集執行總體操做的不錯的方式。例如,你可能使用for 循環來初始化遊戲——遍歷角色列表,將每一個角色都顯示到屏幕上;再在循環後面添 加一個不縮進的代碼塊,在屏幕上繪製全部角色後顯示一個PlayNow。
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)
【編測編學】零基礎學python_09_列表(操做列表之遍歷列表)class

相關文章
相關標籤/搜索