小白學 Python(9):基礎資料結構(列表)(上)
人生苦短,我選Python
前文傳送門
小白學 Python(1):開篇
小白學 Python(2):基礎資料型別(上)
小白學 Python(3):基礎資料型別(下)
小白學 Python(4):變數基礎操作
小白學 Python(5):基礎運算子(上)
小白學 Python(6):基礎運算子(下)
小白學 Python(7):基礎流程控制(上)
小白學 Python(8):基礎流程控制(下)
前言
在開始今天的內容之前先簡單介紹一下 Python 內建的資料結構,包括:
- 列表(list)
- 元組(tuple)
- 字典(dict)
- 集合(set)
在Python語言中,以上4種資料結構和基礎資料型別(整數、浮點數等)統稱為“內建型別”(Built-in Types)。
列表(list)
Python list(列表),是Python中最常用的一種資料結構,它是一組用方括號括起來、逗號分隔的資料。
建立列表:
list1 = [1, 2, 3, 4, 5]
print(list1)
list2 = ['a', 'b', 'c', 'd', 'e']
print(list2)
輸出結果:
[1, 2, 3, 4, 5]
['a', 'b', 'c', 'd', 'e']
列表中的資料型別可以是相同的,如上面的 int 和 str ,也可以是不同的:
list3 = [1, 2, 3, 'a', 'b']
print(list3)
結果如下:
[1, 2, 3, 'a', 'b']
這個還不算什麼,還有更騷的操作,列表裡面是可以巢狀列表的:
list4 = [1, 2.33, 'a', list3]
print(list4)
結果如下:
[1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
這一層一層的,又讓我想起了洋蔥。。。
空列表
list5 = []
print(list5)
列表的一些基操
檢視列表的型別
檢視型別的函式是 type()
,那麼如果我們看下列表的型別呢?
print(type(list4))
結果如下:
<class 'list'>
通過索引取出列表的元素
語法:列表名[索引]
list1 = [1, 2, 3, 4, 5]
print(list1[0])
這裡的數字 0 是列表的索引,含義是取出第 0 位的元素。
注意: 這裡的索引是從 0 開始的,例如 list1 的索引是 0 ~ 4 。
如果我們直接去取 list1 的索引為 5 的值:
list1 = [1, 2, 3, 4, 5]
print(list1[5])
這時會直接丟擲異常。
Traceback (most recent call last):
File "F:/project/python-learning/base-data-list/Demo.py", line 20, in <module>
print(list1[5])
IndexError: list index out of range
這個異常的含義是:列表索引超出範圍。
Python 列表除了正索引還有一個負索引,正索引是列表從頭到尾的方向,負索引的是從尾到頭。
列表: ['a', 'b', 'c', 'd', 'e']
| | | | |
正索引: 0 1 2 3 4
負索引: -5 -4 -3 -2 -1
使用加號連線列表
語法: 列表1 + 列表2
print(list1 + list2)
結果如下:
[1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
對列表元素進行 for 迴圈
語法:
for 變數 in 列表:
print(變數)
for i in list1:
print(i)
結果如下:
1
2
3
4
5
獲取列表長度
語法: len(列表)
print(len(list1))
print(len(list1 + list2))
結果如下:
5
10
檢查列表中是否存在某個元素
返回的是布林值 bool 。
print('a' in list1)
print(1 in list1)
結果如下:
False
True
刪除列表
語法: del 列表名
list1 = [1, 2, 3, 4, 5]
del list1
print(list1)
結果如下:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 40, in <module>
print(list1)
NameError: name 'list1' is not defined
很顯然,將 list1 刪除之後會報錯 list1 未定義。
刪除列表中索引為 i 的元素
語法: del list1[i]
list1 = [1, 2, 3, 4, 5]
del list1[2]
print(list1)
結果如下:
[1, 2, 4, 5]
返回列表中最大的值
語法:max(list1)
print(list1)
print(max(list1))
print(list4)
print(max(list4))
結果如下:
[1, 2, 4, 5]
5
[1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 51, in <module>
print(max(list4))
TypeError: '>' not supported between instances of 'str' and 'float'
list4 中取最大值報錯了,報錯原因是 'str' 和 'float' 無法比較大小。
返回列表中最小的值
語法:min(list1)
print(list1)
print(min(list1))
print(list4)
print(min(list4))
結果如下:
[1, 2, 4, 5]
1
[1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 51, in <module>
print(max(list4))
TypeError: '<' not supported between instances of 'str' and 'float'
list4 中取最小值報錯了,報錯原因和上面取最大是一樣的, 'str' 和 'float' 無法比較大小。
示例程式碼
本系列的所有程式碼小編都會放在程式碼管理倉庫 Github 和 Gitee 上,方便大家取用。
示例程式碼-Github
示例程式碼-Gi