一、列表簡介
List(列表)是 Python 中最基本的數據結構,也是使用最頻繁的數據類型,在其他語言中通常叫做數組。
列表專門用於存儲一串信息,用方括號 [ ] 定義數據,數據之間使用逗號,
分隔。
序列中的每個元素都分配一個數字,即是它的位置,或索引。
第一個索引是0,第二個索引是1,依此類推。
列表的數據項不需要具有相同的類型。
下面來簡單定義一個列表。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
二、列表常用操作
序號 | 分類 | 關鍵字 / 函數 / 方法 | 說明 |
---|---|---|---|
1 | 讀取 | 列表[索引] | 從列表中根據索引讀取數據 |
列表.index("元素") | 從列表中找出第一個匹配元素的索引位置 | ||
2 | 增加 | 列表.insert(索引, 元素) | 在指定位置插入數據 |
列表.append(元素) | 在末尾追加數據 | ||
列表.extend(列表2) | 將列表2 的數據追加到列表 | ||
3 | 修改 | 列表[索引] = 數據 | 修改指定索引的數據 |
4 | 刪除 | del 列表[索引] | 刪除指定索引的數據 |
列表.remove[數據] | 刪除第一個出現的指定數據 | ||
列表.pop | 刪除末尾數據 | ||
列表.pop(索引) | 刪除指定索引數據 | ||
列表.clear | 清空列表 | ||
5 | 計算 | len(列表) | 獲取列表長度 |
列表.count(元素) | 元素在列表中出現的次數 | ||
max(列表) | 返回列表元素中的最大值 | ||
min(列表) | 返回列表元素中的最小值 | ||
6 | 排序 | 列表.sort() | 升序排序 |
列表.sort(reverse=True) | 降序排序 | ||
列表.reverse() | 逆序、反轉 |
1、列表元素的讀取
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
print(name_list[0])
# zhangsan
print(name_list[-2])
# wangwu
print(name_list[1:])
# ['lisi', 'wangwu', 'zhaoliu']
# 從第2個元素開始截取列表
注意:在訪問列表中的值時,如果超出索引范圍,程序會報錯。如上面的例子,就會報出:
IndexError: list index out of range
index,從列表中找出第一個匹配元素的索引位置。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
print(name_list.index('lisi'))
# 1
print(name_list.index("wangwu", 2, 3))
# 2
index 的第2個和第3個參數分別是查找的起始和結束的位置,左閉右開。
如果查找不到值,就會報值錯誤:
ValueError: 'wangwu' is not in list
2、列表增加
insert,在列表的指定位置插入數據。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.insert(2, 'zhaoliu')
print(name_list)
# ['zhangsan', 'lisi', 'zhaoliu', 'wangwu']
append,在列表的末尾追加數據。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.append('zhaoliu')
print(name_list)
# ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
extend,在列表的末尾追加另一個列表。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list_2 = ['zhaoliu', 'tianqi']
name_list.extend(name_list_2)
print(name_list)
# ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'tianqi']
3、列表修改
修改列表中指定索引的元素。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list[1] = "zhaoliu"
print(name_list)
# ['zhangsan', 'zhaoliu', 'wangwu']
4、列表的刪除
remove,刪除列表中第一個出現的指定元素。
name_list = ["zhangsan", "lisi", "wangwu", "lisi"]
name_list.remove("lisi")
print(name_list)
# ['zhangsan', 'wangwu', 'lisi']
# 列表中存在多個"lisi",只刪除第一個。
pop,刪除末尾的元素。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.pop()
print(name_list)
# ['zhangsan', 'lisi']
# pop(index) 刪除指定索引元素
name_list.pop(0)
print(name_list)
# ['lisi']
del,刪除指定索引數據。
name_list = ["zhangsan", "lisi", "wangwu"]
del name_list[1]
print(name_list)
# ['zhangsan', 'wangwu']
del 關鍵字本質上是用來將一個變量從內存中刪除的。
如果使用del關鍵字將變量從內存中刪除,后續的代碼就不能再使用這個變量了。
在日常開發中,要從列表刪除數據,建議使用列表提供的方法。
clear,清空列表。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.clear()
print(name_list)
# []
5、列表的計算比較
len,獲取列表的長度。
name_list = ["zhangsan", "lisi", "wangwu"]
print(len(name_list))
# 3
count,獲取元素在列表中出現的次數。
name_list = ["zhangsan", "lisi", "wangwu", "lisi"]
print(name_list.count("lisi"))
# 2
max,返回列表元素中的最大值。
list1 = [8, 1, 3, 6, 5]
print(max(list1))
# 8
list2 = ["abc", "xyz", "jhc", "rtcx"]
print(max(list2))
# xyz
min,返回列表元素中的最小值。
list1 = [8, 1, 3, 6, 5]
print(min(list1))
# 1
list2 = ["abc", "xyz", "jhc", "rtcx"]
print(min(list2))
# abc
6、排序
sort,升序排序。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
name_list.sort()
print(name_list)
# ['lisi', 'wangwu', 'zhangsan', 'zhaoliu']
sort(reverse=True),降序排序。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
name_list.sort(reverse = True)
print(name_list)
# ['zhaoliu', 'zhangsan', 'wangwu', 'lisi']
reverse,逆序、反轉。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
name_list.reverse()
print(name_list)
# ['zhaoliu', 'wangwu', 'lisi', 'zhangsan']
三、Python列表腳本操作符
組合
num_list = [1, 2, 3] + [4, 5, 6]
print(num_list)
# [1, 2, 3, 4, 5, 6]
重復
str_list = ['Hi!'] * 4
print(str_list)
# ['Hi!', 'Hi!', 'Hi!', 'Hi!']
判斷元素是否存在於列表中
value = 3 in [1, 2, 3]
print(value)
# True