官术网_书友最值得收藏!

3.3 列表和數(shù)組

列表(list)和數(shù)組(array) 本書并沒有明確區(qū)分Python中的列表和數(shù)組,對于本書而言,在概念上可以將它們視為等效的。——譯者注可以用一個表來表示。想象一個一維(1D)的向量或矩陣。你剛剛想象的就是一個列表或數(shù)組。

列表和數(shù)組可以存儲數(shù)據(jù)。數(shù)據(jù)可以是任何東西:變量、其他列表或數(shù)組(這種情況叫作多維列表或數(shù)組),或某些類的對象(我們之后會學(xué)到)。

比如,以下就是一個包含整數(shù)的一維列表或數(shù)組:

而以下是二維(2D)列表或數(shù)組,同樣包含整數(shù):

創(chuàng)建一個二維列表,就是創(chuàng)建一個包含了多個列表的列表。創(chuàng)建一個列表很容易,就像這樣:

在這里我們創(chuàng)建了4個列表:L1、L2、L3、L4。前兩個列表是空的,它們包含0個元素。接下來的兩個列表包含了一些預(yù)設(shè)的值。L3是一個一維列表,就和第一張圖片中的一樣。L4是一個二維列表,就和第二張圖片一樣。如你所見,L4實際上是由3個更小的一維列表組成的。

本書中提到的數(shù)組通常是指NumPy數(shù)組。NumPy是Python的一個庫(library)。庫指允許你執(zhí)行很多操作卻又不需要從頭寫代碼的提前寫好的程序集。NumPy被廣泛用于列表或數(shù)組的不同操作。你可以把NumPy數(shù)組看作一種特殊的列表,只不過功能更多罷了。

要想創(chuàng)建NumPy數(shù)組,你必須先設(shè)置數(shù)組的尺寸并且使用一個方法進行初始化。舉個例子:

在第一行代碼中,我們導(dǎo)入了NumPy庫(如你所見,要導(dǎo)入一個庫須要用到import關(guān)鍵詞),然后通過用as關(guān)鍵詞將NumPy簡寫為np,這樣以后使用起來會更簡便。接著,我們創(chuàng)建一個5×5的用0填充的新二維數(shù)組,命名為nparray。“.”后面的部分表示初始化方法。本例中,我們初始化這個零數(shù)組的方法是zeros函數(shù)。

為了獲取列表或者數(shù)組中元素的值,你需要明確給出該元素在列表中對應(yīng)位置的索引。例如,如果你想改變L3列表中的第一個元素,你就要先獲得這個元素的索引。在Python中,索引從0開始,所以你應(yīng)該寫L3[0]。事實上,你還可以將print()與它結(jié)合,寫成print(L3[0])。如果執(zhí)行這行代碼,那么如你所預(yù)期的,屏幕上會顯示數(shù)字3。

獲取一個多維列表或數(shù)組中的單個值需要你輸入和維度一樣多的索引值。例如,要從L4列表中獲取0,我們就必須寫L4[1][1]。L4[1]會返回第二行的全部內(nèi)容,同時也是一個列表。

練習(xí)

嘗試找出L4列表中全部數(shù)值的平均值。本練習(xí)有多個答案。

提示:最簡單的解決方案是利用NumPy庫。可以在以下鏈接查找NumPy庫提供的一些函數(shù)——https://docs.scipy.org/doc/numpy/reference/

本練習(xí)的答案可以在GitHub頁面的Chapter 03/Lists and Arrays/homework.py文件中找到。

[1] 本書并沒有明確區(qū)分Python中的列表和數(shù)組,對于本書而言,在概念上可以將它們視為等效的。——譯者注

主站蜘蛛池模板: 贞丰县| 石门县| 前郭尔| 竹溪县| 昌吉市| 涞水县| 石林| 新疆| 安义县| 边坝县| 社旗县| 慈利县| 密云县| 汕尾市| 鹿邑县| 喀喇沁旗| 洛扎县| 阿克| 益阳市| 乌兰县| 怀远县| 南投县| 灵川县| 灌云县| 西宁市| 漳州市| 南部县| 灌南县| 上林县| 吴川市| 花莲市| 长治县| 含山县| 安徽省| 来凤县| 班戈县| 马尔康县| 南投县| 图片| 徐汇区| 泰兴市|