從0開始學python-3.1 列表容器
來自專欄碼前程
什麼是容器
上章我們學習了數字和字元串。這兩種數據是是不可拆分的「原子元素」(嚴格來說我字元串是可以再拆分成字元的,但是這個可以忽略)。
我們生活中還有另外一大類型的數據,容器:由多個元素組成的一個中數據。我們來看看生活中哪些數據是容器。一斤蘋果、一套畫冊、一群小鳥。斤、套、群這些都是形容一組數據的介詞。都有一堆的意思。這些就是容器。
在遊戲中就有更多容器的例子啦。遊戲主角身上穿的裝備列表、遊戲征途中的所有怪物,這些都是容器。
容器的作用
要是世界上只有我們一個人,得是多麼的孤單。所以世界上的很多東西都是可以「類聚群分」的。通過容器的方式,能夠讓我們統籌全局,站在更高的視角上分析問題。
接下來,我們就學習下容器在python里的表達。
什麼是列表
列表就是我們最常見的容器的了,我們可以用由一組元素組成的數據叫容器來定義它。
我們前面提到的一斤蘋果、一套畫冊都是容器。下面,我們就拿一套畫冊來舉例子,看我們對這種容器的數據做哪些操作。
對列表能做哪些操作
- 數畫冊里共有多少本漫畫
- 往畫冊里加一本漫畫
- 把畫冊的第一本書換為七龍珠
- 從畫冊里去掉一本漫畫
- 取這個畫冊里的第二本漫畫
- 取這個畫冊里的第二到第四本漫畫
- 判斷海賊王是否在這套畫冊里
- 把這個畫冊按照漫畫的名字排序
是不是發現,只要套用生活中的例子,理解編程概念是很簡單的。編程就是處理數據的,我們平時怎麼處理數據,編程就能怎麼處理數據(當然以後會有更高級的處理方式)。
在python中定義列表
上面我們認識了什麼是列表,接下來我們就看看怎麼在python里定義個列表吧。
a = [1,3,5,7,9]hero = [阿珂,韓信,李白]book_list = [海賊王,叮噹貓,老夫子]
在第一行中,[1, 3, 5, 7, 9]
就是一個小於10的奇數容器。定義一個列表,我們只需要用中括弧把我們的元素包起來、每個元素用逗號隔開即可。第一行的整體意思是,我們定義一個變數a,並用賦值語句把由 1、3、5、7、9 5個元素組成的賦值給變數a,其中:1,3,5,6,7,9是我們上章節學習的數字。
在第二行中,[阿珂,韓信,李白]
是由 阿珂、韓信、李白三個遊戲角色組成的列表,我們把這個列表通過賦值語句給到了hero這個變數。其中,阿珂,韓信,李白使我們上個章節學習的字元串。
第三行, [海賊王,叮噹貓,老夫子]
是由 海賊王、叮噹貓、老夫子三本漫畫組成的列表,我們把這個列表給到了變數:book_list
在python中操作列表
接下來,我們就看一下在python中怎麼對列表變數 book_list
做我們前文提到的那些操作。
book_list = [海賊王,叮噹貓,老夫子]len(book_list)book_list.append(西遊記)book_list[1]book_list[0] = 七龍珠book_list[1:3]book_list.remove(叮噹貓)海賊王 in book_listbook_list.sort()print(book_list)
- 獲取列表長度 數畫冊里共有多少本漫畫
len(book_list)
中的 len()方法,和字元串里的取字元串的長度是一樣的 - 往列表裡增加元素 往畫冊里加一本漫畫
book_list.append(西遊記)append()
方法,append是追加的意思,往列表裡追加一個元素 - 獲取列表元素 取這個畫冊里的第二本漫畫
book_list[1]
我們使用[ 1]
的方式去列表裡某個位置的元素,注意,還是從0開始取的 - 更改列表裡某個位置的值 把畫冊的第一本書換為七龍珠
book_list[0] = 七龍珠
直接用賦值表達式來改變列表某個位置下的值。 - 獲取多個元素 取這個畫冊里的第二到第四本漫畫
book_list[1:3]
取列表裡的多個元素直接用[1:3]
就可以了,和字元串里的取字元串方法一樣。 - 刪除元素從畫冊里去掉一本漫畫
book_list.remove(叮噹貓)
使用 remove方法刪除列表裡的某個元素 - 判斷列表是否包含某個元素 判斷海賊王是否在這套畫冊里
海賊王 in book_list
使用in
方法。in 左側是元素,in右側是列表。 - 列表排序 把這個畫冊按照漫畫的名字排序
book_list.sort()
使用 sort方法對列表裡的元素排序,默認按照從小到大的順序排序。
總結
這節課的知識點有點多,我們在掌握的時候,首先要理解什麼是列表,對列表能做哪些操作。語法我們可以慢慢記憶。下節課,我們用列表來做一個項目實例,讓大家有個感性的認識。
推薦閱讀:
※今天推薦 2 個實用工具和 1 個技巧
※python基礎-break,continue,pass
※【翻譯】《利用Python進行數據分析·第2版》第11章(中二) 時間序列
※《利用Python進行數據分析》12章 pandas高級應用
※Python操作Redis