本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes
一、數字列表的操作
我們經常需要處理純數字的列表,這就不得不提到一個很常用的函數range(),用這個函數可以批量產生數字,比如我們想自動生成1到10的數字,就要用range(1,11),可以輸出1到10,見下面的代碼:
for value in range(1,11):print(value)
上面代碼有個地方要特別注意,range函數內是(1,11),而不是(1,10),這裡很容易寫錯。
上面雖然輸出了1-10這些數字,但還不是列表的形式。需要使用list()函數轉換一下才能形成列表,寫成這樣list(range(1,11)),見下面代碼:
numbers = list(range(1,11))print(numbers)
Range()函數可以指定步長,比如我們每個2位取一個值,可以寫成這樣:range(1,11,2),輸出結果是:[1, 3, 5, 7, 9]。
利用range()函數幾乎可以產生任何的數列,比如我們需要產生1到10的平方數列(Python中兩個星號(** )表示乘方運算),可以這麼寫:
squares = [] #先定義一個空列表for value in range(1,11):squares.append(value**2) #把每個元素添加到列表的尾部print(squares) #列印最終的列表內容
可以利用常用的統計函數min()、max()、sum()進行列表統計,見下面的代碼:
digits = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]print('列表中最小值是:',min(digits))print('列表中最大值是:',max(digits))print('列表所有數總和是:',sum(digits))
再介紹一個概念叫「列表解析」,它是列表生產的一種簡寫形式,還是生產平方的例子,可以用下面代碼:
squares = [value**2 for value in range(1,11)]
這個代碼和上面for循環的前三行代碼是等價的,初學者用不慣不要緊,但是看到這個寫法需要知道什麼意思,執行結果如下:
數字列表的相關操作就介紹到這裡,下面介紹列表的切片操作。
二、列表的切片
切片的意思就是只訪問列表的部分元素,就像切黃瓜,如果我們只需要黃瓜的一小段,就會用到切片的概念,列表切片的操作符如下:
[開始位置:結束位置]
廢話不多說,直接上代碼:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print('元素列表',digits)print('取列表中第3到第6個位置的元素',digits[2:6])print('取列表開始到第6個位置的元素',digits[:6])print('取第三個位置開始到列表結束',digits[2:])print('取倒數三個數',digits[-3:])print('末尾三位數不取',digits[:-3])print('取倒數第四個到倒數第2個之間的值',digits[-4:-1])print('取全部的列表',digits[:])
知道怎麼切片,就知道怎麼遍歷切片了,只需要在for循環裡面將全部的列表換成切片的列表就行,見下面的代碼:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]for data in digits[2:6]: #取列表中第3到第6個位置的元素print(data)
三、列表的複製
可以利用切片的功能實現列表的複製,下面代碼的digits2 = digits1[:]就是將digits1複製一份:
digits1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]digits2 = digits1[:] #複製列表#下面在每個列表的尾部加一個不同的值區分digits1.append(15)digits2.append(19)#然後把兩個列表的值都列印出來,會發現確實是兩個不同的列表print(digits1)print(digits2)
為什麼不能用digits2 = digits1這種方式複製呢?大家可以自己思考一下。
四、元組
Pyhon中與列表很類似的一個數據類型叫「元組」,它們的區別在於:列表的元素是可以改變的(增刪改),元組的元素不能改變。元組的遍歷代碼和列表完全一樣。元組用一個括號包含起來,比如下面就是一個元組:
(1,2,54,3,6,4)
我們可以這麼遍曆元組,下面的代碼出了將[]改為()外,其他代碼都和列表遍歷一模一樣。
digits = (1,2,54,3,6,4)for value in digits:print(value)
長按文末點讚送三連,支持本文作者多寫點~
#Python入門教程#