python隨筆3(操作列表)
3.1遍歷整個列表
你經常需要遍歷列表的所有元素,對每個元素執行相同的操作。可以使用python中的for循環。
magicians.py
magicians = [‘alice‘,‘david‘,‘carolina‘] for magician in magicians: print(magician) >>>alice david carolina
深入研究循環
在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中,再執行循環體代碼。依此往復,直到for循環後面沒有其他的代碼。另外,對於用於存儲列表中每個值的臨時變量,可以指定任何名稱。
3.2創建數值列表
使用函數range()
函數range()讓你能輕松生成一系列數字。
for value in range(1,5): print(vale) 1 2 3 4
函數range()讓python從你指定的第一個值開始數,並在到達你指定的第二個值後停止,因此輸出不包含第二個值。使用range()時如果不符合預期,嘗試+1或-1。
使用range()創建數字列表
要創建數字列表,可使用函數 list() 將 range() 的結果直接轉換為列表。
numbers = list(range(1,6)) print(numbers) >>>[1,2,3,4,5]
使用函數range()時,還可指定步長。如要打印1~10內的偶數。
even_numbers = list(range(2,11,2)) print(even_numbers) >>>[2,4,6,8,10]
函數range()從2開始,然後不斷加2。
使用函數range()幾乎能夠創建任何需要的數字集。例如,創建一個包含前10個整數的平方列表。在python中,兩個星號(**)表示乘方運算。
squares = [] for value in range(1,11): squrare = value**2 squares.append(squrare) print(squares) [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
還可以不使用臨時變量,直接將每個計算得到的值附加到列表末尾:
squares = [] for value in range(1,11): squares.append(value**2) print(squares)
對數字列表執行簡單的統計計算
digits = [1,2,3,4,5,6,7,8,9,0]
min(digits)
max(digits)
sum(digits)
列表解析
列表解析將for循環和創建新元素的代碼合並成一行,並自動附加新元素
squares = [value**2 for value in range(1,11)] print(squares)
要使用這種語法,首先指定一個描述性的列表名,如squares;然後,指定一個左方括號,並定義一個表達式,用於生成你要存儲到列表中的值。在這個示例中,表達式為value**2.接下來編寫一個for循環,用於給表達式提供值,再加上右括號。
3.3使用列表的一部分
切片
要創建切片,可指定要使用的第一個元素的索引和最後一個元素的索引加1。要輸出列表中的前3個元素,需要指定索引0~3,這將輸出0,1,2。
players = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘] print(players[0:3]) >>>[‘a‘, ‘b‘, ‘c‘]
列如你要取列表第2到4個元素,可以指定索引為1,4。如果沒有指定第一個索引,python將自動從列表頭開始提取:同理,不指定最後一個索引,python將自動從第一個索引到列表末尾。
負數索引返回離列表末尾相應距離的元素。例如,如果你要輸出最後3個元素,可使用切片players[-3:]。
players = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘] print(players[-3:]) >>>[‘c‘, ‘d‘, ‘e‘]
遍歷切片
如果要遍歷列表中的部分元素,可再for循環中使用切片。
players = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘] for player in players[:3]: print(player.title()) A B C
復制列表
要復制列表,可創建一個包含整個列表的切片。
my_love = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘] friend_love = my_love[:] print(my_love) print(friend_love) [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘] [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]
3.4元組
python將不能修改的值稱為不可變的,而不可變的列表稱為元組。
定義元組
例如,有一個大小不能變的矩形,可將其長寬存儲在一個元組中,從而確保它們不可修改。
dimensions = (200,50) print(dimensions[0]) print(dimensions[1]) 200 50
遍歷元組中的所有值
像列表一樣,元組也可以用for循環來遍歷。
dimensions = (200,50) for dimension in dimensions: print(dimension) 200 50
修改元組變量
雖然不能修改元組的元素,但可以給存儲元組的變量賦值。因此要修改矩形的尺寸,可重新定義整個元組
dimensions = (200,50) for dimension in dimensions: print(dimension) dimensions = (400,100) for dimension in dimensions: print(dimension) 200 50 400 100
python隨筆3(操作列表)