什麼是列表?¶
在Python中,列表(List)是一種有序且可變的數據容器,就像一個可以裝各種東西的“籃子”。你可以往裏面放數字、字符串、甚至其他列表,而且可以隨時修改、添加或刪除裏面的元素。列表用中括號 [] 表示,元素之間用逗號 , 分隔。
一、創建列表¶
創建列表非常簡單,直接用中括號 [] 包裹元素即可。元素可以是不同類型(數字、字符串、布爾值等),甚至是空列表。
示例1:基本列表
# 數字列表
numbers = [1, 2, 3, 4, 5]
# 字符串列表
fruits = ["apple", "banana", "cherry"]
# 混合類型列表(支持不同類型元素)
mixed = [10, "hello", True, 3.14]
# 空列表(初始時沒有元素)
empty_list = []
二、索引:訪問列表元素¶
列表中的元素是有序排列的,我們可以通過“索引”(類似門牌號)訪問單個元素。Python的索引從 0 開始(不是1!),最後一個元素的索引是 -1(倒數第一個),-2 是倒數第二個,以此類推。
示例2:索引基礎
fruits = ["apple", "banana", "cherry", "date"]
# 訪問第一個元素(索引0)
print(fruits[0]) # 輸出:apple
# 訪問最後一個元素(索引-1)
print(fruits[-1]) # 輸出:date
# 訪問倒數第二個元素(索引-2)
print(fruits[-2]) # 輸出:cherry
注意:如果索引超出範圍(比如列表只有4個元素,卻訪問 fruits[4]),會報錯 IndexError。
三、切片:獲取列表的一部分¶
切片(Slice)用於從列表中獲取連續的多個元素,語法是 列表[起始索引:結束索引:步長]。
- 起始索引:包含該位置的元素(默認爲0);
- 結束索引:不包含該位置的元素(默認爲列表長度);
- 步長:每次移動的步數(默認爲1,步長爲負數時反向取元素)。
示例3:切片基礎
numbers = [0, 1, 2, 3, 4, 5, 6]
# 從索引1到3(不包含3)的元素
print(numbers[1:4]) # 輸出:[1, 2, 3]
# 從開頭到索引5(不包含5),步長爲2(隔一個取一個)
print(numbers[:5:2]) # 輸出:[0, 2, 4]
# 反向切片(步長爲-1)
print(numbers[::-1]) # 輸出:[6, 5, 4, 3, 2, 1, 0]
# 複製整個列表(等同於創建新列表)
copied = numbers[:]
print(copied) # 輸出:[0, 1, 2, 3, 4, 5, 6]
四、列表的常用操作¶
列表的靈活之處在於可以對其進行增、刪、改、查等操作,以下是最常用的方法:
1. 添加元素¶
append():在列表末尾添加一個元素;insert():在列表指定位置插入一個元素。
示例4:添加元素
fruits = ["apple", "banana"]
# 在末尾添加元素
fruits.append("cherry")
print(fruits) # 輸出:["apple", "banana", "cherry"]
# 在索引1的位置插入元素
fruits.insert(1, "orange")
print(fruits) # 輸出:["apple", "orange", "banana", "cherry"]
2. 刪除元素¶
remove():根據值刪除第一個匹配的元素(無匹配值會報錯);pop():根據索引刪除元素(默認刪除最後一個,返回被刪除元素);del:刪除指定位置的元素或整個列表。
示例5:刪除元素
fruits = ["apple", "banana", "cherry", "banana"]
# 根據值刪除第一個"banana"
fruits.remove("banana")
print(fruits) # 輸出:["apple", "cherry", "banana"]
# 根據索引刪除(刪除索引0的元素)
removed = fruits.pop(0)
print(removed) # 輸出:apple
print(fruits) # 輸出:["cherry", "banana"]
# 刪除整個列表(del會直接清空列表)
del fruits[0]
print(fruits) # 輸出:["banana"]
3. 修改元素¶
直接通過索引賦值修改指定位置的元素。
示例6:修改元素
numbers = [1, 2, 3]
numbers[1] = 100 # 修改索引1的元素爲100
print(numbers) # 輸出:[1, 100, 3]
4. 列表長度與檢查元素¶
len():獲取列表元素的個數;in:檢查某個元素是否在列表中(返回布爾值)。
示例7:長度與檢查
fruits = ["apple", "banana"]
# 列表長度
print(len(fruits)) # 輸出:2
# 檢查元素是否存在
print("apple" in fruits) # 輸出:True
print("orange" in fruits) # 輸出:False
5. 列表拼接與重複¶
+:拼接兩個列表(返回新列表,原列表不變);*:重複列表n次(返回新列表);extend():在列表末尾添加另一個列表的所有元素(修改原列表)。
示例8:拼接與重複
list1 = [1, 2]
list2 = [3, 4]
# 拼接列表
combined = list1 + list2
print(combined) # 輸出:[1, 2, 3, 4]
# 重複列表3次
repeated = list1 * 3
print(repeated) # 輸出:[1, 2, 1, 2, 1, 2]
# extend方法(修改原列表)
list1.extend(list2)
print(list1) # 輸出:[1, 2, 3, 4]
6. 排序與反轉¶
sort():原地排序(直接修改原列表,升序);sorted():返回排序後的新列表(原列表不變);reverse():原地反轉列表;reversed():返回反轉的迭代器(需轉成列表)。
示例9:排序與反轉
numbers = [3, 1, 4, 2]
# 升序排序(原地修改)
numbers.sort()
print(numbers) # 輸出:[1, 2, 3, 4]
# 降序排序(sorted加reverse=True)
sorted_desc = sorted(numbers, reverse=True)
print(sorted_desc) # 輸出:[4, 3, 2, 1]
# 反轉列表
numbers.reverse()
print(numbers) # 輸出:[4, 3, 2, 1]
五、小總結¶
列表是Python中最基礎也最實用的數據結構之一,掌握它的關鍵在於:
- 創建:用 [] 或 list() 初始化;
- 索引與切片:注意索引從0開始,切片語法 [start:end:step];
- 操作:增(append/insert)、刪(remove/pop/del)、改(索引賦值)、查(len/in)等常用方法。
多動手練習,比如嘗試用列表實現簡單的待辦事項管理、學生成績統計等場景,就能更快熟練掌握啦!