【Python基礎知識】(三)遍歷列表、切片和元組


遍歷列表(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

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM