Python編程從入門到實踐-連載3(列表操作)

交流學習吧 發佈 2020-03-01T20:51:36+00:00

如果你忘記縮進,Python會提醒你.4.2.2 忘記縮進額外的代碼行 4.2.3 不必要的縮進 4.2.4 循環後不必要的縮進 4.2.5 遺漏了冒號 4.3 創建數值列表 4.3.1 使用函數 range讓Python從你指定的第一個值開始數,並在到達你指定的第二個值後停止,


4.1 遍歷整個列表

經常需要遍歷列表的所有元素,對每個元素執行相同的操作。例如,在遊戲中,可能需要

將每個介面元素平移相同的距離;對於包含數字的列表,可能需要對每個元素執行相同的統計運
算;在網站中,可能需要顯示文章列表中的每個標題。需要對列表中的每個元素都執行相同的操
作時,可使用Python中的for循環。
下面使用for循環來列印魔術師名單中的所有名字:
magicians.py


定義了一個列表(見1)。接下來,我們定義了一個for循環(見2);這行代碼讓Python從列表magicians中取出一個名字,並將其存儲在變量magician中。最後,我們讓Python列印前面存儲到變量magician中的名字(見3)。這樣,對於列表中的每個名字, Python都將重複執行2處和3處的代碼行。你可以這樣解讀這些代碼:對於列表magicians中的每位魔術

師,都將其名字列印出來。輸出很簡單,就是列表中所有的姓名:

4.2 避免縮進錯誤
4.2.1 忘記縮進
對於位於for語句後面且屬於循環組成部分的代碼行,一定要縮進。如果你忘記縮進, Python會提醒你.

4.2.2 忘記縮進額外的代碼行
4.2.3 不必要的縮進
4.2.4 循環後不必要的縮進
4.2.5 遺漏了冒號

4.3 創建數值列表
4.3.1 使用函數 range()

上述代碼好像應該列印數字1~5,但實際上它不會列印數字5:

函數range()讓Python從你指定的第一個值開始數,並在到達你指定的第二個值後停止,因此輸出
不包含第二個值(這裡為5)
。 使用range()時,如果輸出不符合預期,請嘗試將指定的值加1或減1。
4.3.2 使用 range()創建數字列表
要創建數字列表,可使用函數list()將range()的結果直接轉換為列表。如果將range()作為 list()的參數,輸出將為一個數字列表。

要將這些數字轉換為一個列表,可使用list()

使用函數range()時,還可指定步長。例如,下面的代碼列印1~10內的偶數:

4.3.3 對數字列表執行簡單的統計計算

4.3.4 列表解析
下面的示例使用列表解析創建你在前面看到的平方數列表:

要使用這種語法,首先指定一個描述性的列表名,如squares;然後,指定一個左方括號,
並定義一個表達式,用於生成你要存儲到列表中的值。在這個示例中,表達式為value**2,它計
算平方值。接下來,編寫一個for循環,用於給表達式提供值,再加上右方括號。
在這個示例中, for循環為for value in range(1,11),它將值1~10提供給表達式value**2。請注意,這裡的for語句末尾沒有冒號。
4.4 使用列表的一部分
處理列表的部分元素——Python稱之為切片 。

要創建切片,可指定要使用的第一個元素和最後一個元素的索引。與函數range()一樣, Python在到達你指定的第二個索引前面的元素後停止。要輸出列表中的前三個元素,需要指定索引0~3,
這將輸出分別為0、 1和2的元素
下面的示例處理的是一個運動隊成員列表:

如果你要提取列表的第2~4個元素,可將起始索引指定為1,並將終止索引指定為4:


如果你沒有指定第一個索引, Python將自動從列表開頭開始:

要讓切片終止於列表末尾,也可使用類似的語法。例如,如果要提取從第3個元素到列表末
尾的所有元素,可將起始索引指定為2,並省略終止索引:

例如,如果你要輸出名單上的最後三名隊員,可使用切片players[-3:]:


4.4.2 遍歷切片
如果要遍歷列表的部分元素,可在for循環中使用切片。在下面的示例中,我們遍歷前三名
隊員,並列印他們的名字:

4.4.3 複製列表
要複製列表,可創建一個包含整個列表的切片,方法是同時省略起始索引和終止索引( [:])。
這讓Python創建一個始於第一個元素,終止於最後一個元素的切片,即複製整個列表。

friend_foods = my_foods[:]
即可得到副本friend_foods ,其內容和 my_foods 一樣。
4.5 元組
Python將不能修改的值稱為不可變的,而不可變的列表被稱為元組。
4.5.1 定義元組
元組看起來猶如列表,但使用圓括號而不是方括號來標識。定義元組後,就可以使用索引來
訪問其元素,就像訪問列表元素一樣。


4.5.2 遍曆元組中的所有值
像列表一樣,也可以使用for循環來遍曆元組中的所有值


4.5.3 修改元組變量
雖然不能修改元組的元素,但可以給存儲元組的變量賦值

我們首先定義了一個元組,並將其存儲的尺寸列印了出來(見);接下來,將一個新元組
存儲到變量dimensions中(見);然後,列印新的尺寸(見)。這次, Python不會報告任何錯
誤,因為給元組變量賦值是合法的:



關鍵字: