1. 程式人生 > >操作列表、元祖(Python)

操作列表、元祖(Python)

遍歷整個列表
下面使用for迴圈來列印魔術師名單中的所有名字:
 magicians = ['alice', 'david', 'carolina']
 for magician in magicians:

 print(magician)
每個縮排的程式碼行都是迴圈的一部分,且將針對列表中的每個值都執行一次。Python根據縮排來判斷程式碼行與前一個程式碼行的關係。在for迴圈後面,沒有縮排的程式碼都只執行一次,而不會重複執行。

注意:如果不小心遺漏了冒號 : ,將導致語法錯誤

建立數值列表
使用函式range()
例如,
for value in range(1,5):
    print(value)


上述程式碼好像應該列印數字1~5,但實際上它不會列印數字5:
函式range()讓Python從你指定的第一個值開始數,並在到達你指定的第二個值後停止,因此輸出
不包含第二個值(這裡為5)。

使用range()建立數字列表
numbers = list(range(1,6))
print(numbers)
結果如下:
[1, 2, 3, 4, 5]

使用函式range()時,還可指定步長。例如,下面的程式碼列印1~10內的偶數:
even_numbers.py
even_numbers = list(range(2,11,2))
print(even_numbers)
在這個示例中,函式range()從2開始數,然後不斷地加2,直到達到或超過終值(11),因此
輸出如下:
[2, 4, 6, 8, 10]

對數字列表執行簡單的統計計算
有幾個專門用於處理數字列表的Python函式。例如,你可以輕鬆地找出數字列表的最大值、
最小值和總和:
min()、max()、sum()

使用列表的一部分
切片

下面的示例處理的是一個運動隊成員列表:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
程式碼列印該列表的一個切片,其中只包含三名隊員。輸出也是一個列表,其中包含前
三名隊員:
['charles', 'martina', 'michael']
如果你沒有指定第一個索引,Python將自動從列表開頭開始:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])

要讓切片終止於列表末尾,也可使用類似的語法。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
Python將返回從第3個元素到列表末尾的所有元素:
['michael', 'florence', 'eli']

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

複製列表
要複製列表,可建立一個包含整個列表的切片,方法是同時省略起始索引和終止索引([:])。
這讓Python建立一個始於第一個元素,終止於最後一個元素的切片,即複製整個列表。
例:p=players[:]
與p=players不同,上面是建立了這個列表的副本,再將副本儲存到變數p中
而p=players實際上是讓Python將新變數p關聯到包含在players中的列表,因此這兩個
變數都指向同一個列表。

元祖
有時候你需要建立一系列不可修改的元素,
元組可以滿足這種需求。Python將不能修改的值稱為不可變的,而不可變的列表被稱為元組。
定義元祖
元組看起來猶如列表,但使用圓括號而不是方括號來標識。
例如,如果有一個大小不應改變的矩形,可將其長度和寬度儲存在一個元組中,從而確保它
們是不能修改的:
dimensions = (200, 50)

下面來嘗試修改元組dimensions中的一個元素,看看結果如何:
dimensions = (200, 50)
dimensions[0] = 250
程式碼試圖修改第一個元素的值,導致Python返回型別錯誤訊息。由於試圖修改元組的
操作是被禁止的,因此Python指出不能給元組的元素賦值:


遍歷元祖中的所有值
雖然不能修改元組的元素,但可以給儲存元組的變數賦值。因此,如果要修改前述矩形的尺
寸,可重新定義整個元組。