遍歷列表(for循環)
1、使用for循環打印列表中的元素
magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician)
輸出為:
alice
david
carolina
(1)臨時變量magician可替換為任何其他名稱,如person,a,M等等。
(2)關於執行順序:在實際運行中,Python會反復執行for語句和print語句,直到遍歷完列表中所有元素。
(3)Python中print語句的句尾結束符為\n(執行完一次輸出后自動換行)。
2、一次循環中打印多條語句
magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician) print(magician.title() + ", that was a great trick!\n") print("Thank you, everyone. That was a great magic show!")
輸出為:
alice
Alice, that was a great trick!
david
David, that was a great trick!
carolina
Carolina, that was a great trick!
Thank you, everyone. That was a great magic show!
(4)Python中,在for循環后,可包含任意行代碼。和C語言中用大括號來表示循環體內包含的語句的方式不同,Python用縮進的方式來表示這些語句。在循環語句冒號后的每個縮進的代碼行都是循環的一部分,且針對列表中的每個值都執行一次,而在for循環后面,沒有縮進的代碼都只執行一次,不會重復執行。
(5)for語句后面緊跟的語句一定至少有一句要縮進,否則會出現縮進錯誤(IndentationError)。當縮進了無需縮進的代碼行時也會出現此類錯誤。
數字列表
1、使用range函數創建數字列表
(1)range( 下限數字m, 上限數字n ):生成包含從m到n之間的所有自然數的數字列表(包括m但不包括n)。
for value in range(2, 5): print(value)
輸出為:
2 3 4
所以要打印數字1~5,就要調用range( 1, 6 )。
(2)list( range( 下限數字m, 上限數字n ) ):以數字列表的形式輸出range()。
numbers = list(range(1, 6)) print(numbers)
輸出為:
[1, 2, 3, 4, 5]
2、逐個元素創建數字列表
利用循環語句逐個向列表中添加元素。
squares = [] '''創建空列表''' for value in range(1, 11): square = value ** 2; squares.append(square) '''通過循環向列表中逐個添加元素''' print(squares)
輸出為:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3、列表解析法創建數字列表
squares = [value**2 for value in range(1, 11)] print(squares)
輸出為
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
4、處理數字列表的函數
(1)min( 數字列表名稱 ):求數字列表中元素的最小值。
(1)max( 數字列表名稱 ):求數字列表中元素的最大值。
(1)sum( 數字列表名稱 ):求數字列表中所有元素的總和。
digits = [1, 2, 3, 0] min(digits) = 0 max(digits) = 3 sum(digits) = 6
切片
1、切片的概念
切片( 列表名稱[ 起始索引 : 終止索引 ] ):可用來處理列表中的部分元素。
[ m : n ]:提取列表中索引從m到(n-1)的所有元素。
[ : n ]:沒有指定起始索引,切片將會從列表表頭開始提取。
[ m : ]:沒有指定終止索引,切片將會終止於列表表尾。
[ -m : ]:當起始索引為負數且沒有指定終止索引時,切片將提取列表中最后m個元素。
[ m : n : 2 ]:以步長為2,提取列表中索引從m到n的元素。
[ m : n : -1 ]:以步長為1反向提取列表中的元素。
players = [ 'charles', 'martina', 'michael', 'florence', 'eli' ] print(players[0 : 3]) print(players[1 : 4]) print(players[ : 4]) print(players[1 : ]) print(players[-3 : ])
輸出為:
['charles', 'martina', 'michael'] ['martina', 'michael', 'florence'] ['charles', 'martina', 'michael', 'florence'] ['martina', 'michael', 'florence', 'eli'] ['michael', 'florence', 'eli']
2、遍歷切片
形式與數字列表類似。
players = ['charles', 'martina', 'michael', 'florence', 'eli'] for player in players[ : 3]: print(player.title())
輸出為:
Charles
Martina
Michael
3、使用切片復制列表
the_players = ['charles', 'martina', 'michael', 'florence', 'eli'] our_players = the_players[ : ] print(the_players) print(our_players) '''復制列表''' the_players.append('eric') our_players.append('jack') print(the_players) print(our_players) '''兩個列表互相獨立'''
輸出為:
['charles', 'martina', 'michael', 'florence', 'eli'] ['charles', 'martina', 'michael', 'florence', 'eli'] ['charles', 'martina', 'michael', 'florence', 'eli', 'eric'] ['charles', 'martina', 'michael', 'florence', 'eli', 'jack']
若不使用切片(刪去[ : ]),則兩個列表會產生關聯,無法獨立編輯(會同時改變另一個)。
the_players = ['charles', 'martina', 'michael', 'florence', 'eli'] our_players = the_players '''刪去了“[ : ]”''' print(the_players) print(our_players) the_players.append('eric') our_players.append('jack') print(the_players) print(our_players)
輸出變為:
['charles', 'martina', 'michael', 'florence', 'eli'] ['charles', 'martina', 'michael', 'florence', 'eli'] ['charles', 'martina', 'michael', 'florence', 'eli', 'eric', 'jack'] ['charles', 'martina', 'michael', 'florence', 'eli', 'eric', 'jack']
元組
1、元組的概念
Python將不能修改的值稱為不可變的,不可變的列表被稱為元組(不可修改其中的元素),用括號表示,不同元素間用逗號隔開。
dimensions = (200, 50) '''定義元組dimensions''' print(dimensions[0]) print(dimensions[1]) '''打印元組中的元素'''
輸出為
200 50
2、遍歷元組中的元素
和列表類似,可用for循環遍歷元組中所有值。
dimensions = ( 200, 50 ) for dimension in dimensions: print( dimension )
3、修改元組
雖然不能直接修改元組中的元素,但是可以通過給存儲元組的變量賦值的方式做到這一點,即重新定義整個元組。
dimensions = (200, 50) print(dimensions) dimensions = (400, 10) print(dimensions)
輸出為:
(200, 50)
(400, 10)
相比於列表,元組是更簡單的數據結構。如果需要存儲的一組值在程序的整個生命周期內都不變,可使用元組。
參考書籍:《Python編程:從入門到實踐》
2020-07-08