使用迴圈操作串列
1. 使用 for … range() 迴圈
for … range()迴圈可以用range()函式的遞增或遞減方式指定串列的註標,進而循序讀取串列的元素內容。其中range()函式的最大值便是串列的長度,而串列的長度可以由len() 函式取得。
[例] 建立串列lst3,並使用len()函式取得lst3串列的長度。(檔名:list3.py)
程式碼:
list3.pylst3 = [23, 45, 51, 67, 89, 100] x = len(lst3) # x ← 6 print(x) # 印出 6
串列的長度取得後,可以設定給range()函式範圍的最大值。接著for … range()迴圈便可以來控制串列的註標,循序讀取指定範圍的串列元素。
[例] 建立串列lst4,使用for ...range()迴圈循序讀取指定範圍的串列元素。 (檔名:list4.py)
程式碼:
list4.pylst4 = [11, 22, 33, 44, 55, 66, 77, 88, 99] for i in range(len(lst4)): # len(lst4) = 9 print(lst4[i], end = ' ') # 印出 11 22 33 44 55 66 77 88 99 print() for j in range(1, 4): print(lst4[j], end = ' ') # 印出 22 33 44 print() for k in range(5, len(lst4)): print(lst4[k], end = ' ') # 印出 66 77 88 99 print() for m in range(len(lst4)-1, 5-1, -1): print(lst4[m], end = ' ') # 印出 99 88 77 66 print() for g in range(0, len(lst4), 2): print(lst4[g], end = ' ') # 印出 11 33 55 77 99
2. 使用 for … in 串列迴圈
使用for⋯in串列迴圈可以讀取串列的元素內,其語法為:
for 變數 in 串列:[例] 建立串列 season,並以使用for...in串列廻圈圈讀取 season 串列的元素内容。 (檔名:list5.py)
程式碼:
list5.pyseason = ['spring','summer','autumn','winter'] for item in season : print(item, end = ' ') # 印出 spring summer autumn winter
3. 串列生成器
建立串列時搭配range()函式,可以指定串列的元素內容,簡例如下:
[例] 建立串列arr,並使其arr[0]=arr[1]=....=arr[5]=8。 (檔名:list6.py)
程式碼:
list6.pyarr = [8 for x in range(6)] for item in arr: print(item, end = ',') # 印出 8,8,8,8,8,8, ```
[例] 建立串列lst,並使其其lst[0]=0,lst[1]=1,lst[2]=2,lst[3]=3, lst[4]=4。 (檔名:list7.py)
程式碼:
list7.py# 利用串列生成器,建立一個數字串列 lst = [y for y in range(5)] for item in lst: print(item, end = ',') # 印出 0,1,2,3,4,
[簡例] 使用串列儲存使用者連續輸入的5個整數,再從串列中找出最大數。
(檔名:max.py)
程式碼:
max.py# 利用列表生成式建立一個長度為 5、裡面初始值都是 `0` 的列表,也就是 `[0, 0, 0, 0, 0]`。 lst = [0 for x in range(5)] print('請依序輸入5個整數...') for i in range(5): print(f'輸入第 {i+1} 個元素內容:', end = '') # 接收使用者在鍵盤輸入的文字,並將它轉成數字。 lst[i] = eval(input()) # 找出最大值(演算法核心 max = lst[0] # 先假設第一個元素就是最大的 for item in lst: # 如果挑戰者 `item` 比目前的擂台主 `max` 還要大,就把擂台主換人,寫入 `max = item`。 if max < item : max = item print() print(f'最大值為 {max}')
相關主題與延伸閱讀
- 1. for 迴圈:本篇大量運用
for迴圈搭配range()走訪串列。 - 2. 一維串列:先備知識,了解一維串列的建立與存取語法。
- 4. 串列的函式與方法:延伸學習串列的內建函式與方法,如
len()。 - 5. 引數傳遞使用串列:串列常作為函式引數傳遞,搭配迴圈處理其元素。