Python 中的串列(List)詳解:新手指南

更新日期: 2024 年 9 月 26 日

在 Python 編程中,串列(List) 是一種非常重要且常用的資料結構。

它允許您存儲和操作一系列的元素,這些元素可以是任何類型,包括數字、字串、甚至其他串列。

對於剛開始學習 Python 的新手來說,掌握串列的概念和用法是至關重要的。

本文將詳細介紹 Python 中的串列,從基本操作到高級用法,幫助您在實際編程中靈活運用。


什麼是串列

串列(List)是 Python 中的一種有序可變的資料集合,用於存儲一系列項目。

串列使用方括號 [] 表示,串列中的元素之間用逗號分隔。

示例:

# 空串列
my_list = []

# 帶有初始值的串列
my_list = [1, 2, 3, 4, 5]

串列的特點:

  • 有序性:串列中的元素按照添加的順序存儲。
  • 可變性:可以修改、添加、刪除串列中的元素。
  • 多樣性:串列中的元素可以是不同的資料類型。

訪問串列元素

可以使用索引,來訪問串列中的元素。

Python 的索引從 0 開始,負索引則從串列末尾開始計算。

示例:

my_list = ['apple', 'banana', 'cherry', 'date']

# 訪問第一個元素
print(my_list[0])  # 輸出:apple

# 訪問最後一個元素
print(my_list[-1])  # 輸出:date

修改串列元素

串列是可變的,這意味著您可以修改串列中的元素。

示例:

my_list = [10, 20, 30, 40]

# 修改第二個元素
my_list[1] = 25
print(my_list)  # 輸出:[10, 25, 30, 40]

添加和刪除元素

添加元素

  • append() 方法:在串列末尾添加一個元素。
  my_list = [1, 2, 3]
  my_list.append(4)
  print(my_list)  # 輸出:[1, 2, 3, 4]
  • insert() 方法:在指定位置插入一個元素。
  my_list = [1, 2, 3, 4]
  my_list.insert(1, 'a')
  print(my_list)  # 輸出:[1, 'a', 2, 3, 4]

刪除元素

  • remove() 方法:移除串列中第一次出現的指定值。
  my_list = [1, 'a', 2, 3, 4]
  my_list.remove('a')
  print(my_list)  # 輸出:[1, 2, 3, 4]
  • pop() 方法:移除並返回指定位置的元素,默認為最後一個元素。
  my_list = [1, 2, 3, 4]
  last_item = my_list.pop()
  print(last_item)  # 輸出:4
  print(my_list)    # 輸出:[1, 2, 3]
  • del 關鍵字:刪除指定索引的元素或整個串列。
  my_list = [1, 2, 3]
  del my_list[0]
  print(my_list)  # 輸出:[2, 3]

串列的其他常用方法

  • len() 函數:獲取串列的長度。
  my_list = [2, 3]  
  length = len(my_list)
  print(length)  # 輸出:2
  • sort() 方法:對串列進行排序。
  my_list = [3, 1, 4, 2]
  my_list.sort()
  print(my_list)  # 輸出:[1, 2, 3, 4]
  • reverse() 方法:反轉串列中的元素順序。
  my_list = [4, 3, 2, 1]
  my_list.reverse()
  print(my_list)  # 輸出:[4, 3, 2, 1]
  • count() 方法:返回指定元素在串列中出現的次數。
  my_list = [3, 1, 4, 2]
  count = my_list.count(2)
  print(count)  # 輸出:1
  • index() 方法:返回指定元素在串列中的索引。
  my_list = [4, 3, 2, 1]
  index = my_list.index(3)
  print(index)  # 輸出:1

串列的遍歷

可以使用 for 迴圈遍歷串列中的每個元素。

示例:

fruits = ['apple', 'banana', 'cherry']

for fruit in fruits:
    print(fruit)

輸出:

apple
banana
cherry

串列的切片

切片允許您獲取串列中的一部分。

語法: list[start:stop:step]

示例:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 獲取前三個元素
print(numbers[:3])  # 輸出:[0, 1, 2]

# 獲取從索引 3 到索引 6 的元素
print(numbers[3:7])  # 輸出:[3, 4, 5, 6]

# 每隔一個元素取一次
print(numbers[::2])  # 輸出:[0, 2, 4, 6, 8]

串列的複製

在 Python 中,直接將一個串列賦值給另一個變量,兩者將引用同一個串列。

list1 = [1, 2, 3]
list2 = list1

list2.append(4)
print(list1)  # 輸出:[1, 2, 3, 4]

為了創建串列的副本,可以使用以下方法:

  • 切片複製
  list2 = list1[:]
  • copy() 方法
  list2 = list1.copy()

串列的嵌套

串列可以包含其他串列,從而創建多維串列(矩陣)。

示例:

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 訪問元素
print(matrix[0][1])  # 輸出:2

串列推導式(List Comprehension)

串列推導式是一種在 Python 中創建新列表的簡潔而有力的語法。

它允許你從一個已有的可迭代對象(如列表、元組、字串等)創建一個新的列表,同時可以對元素進行操作,甚至加入條件過濾。

基本語法:

new_list = [expression for item in iterable if condition]
  • new_list:要創建的新列表。
  • expression:對每個元素進行的操作,可以是元素本身或對其進行的計算。
  • for item in iterable:遍歷一個可迭代對象中的每個元素。
  • if condition(可選):過濾條件,只有滿足條件的元素才會被包含在新列表中。

示例:

# 創建一個包含 1 到 10 的列表

numbers = [x for x in range(1, 11)]
print(numbers)  # 輸出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 創創建一個包含偶數的列表

evens = [x for x in range(1, 21) if x % 2 == 0]
print(evens)  # 輸出:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# 將一個列表中的字串轉換為大寫

fruits = ['apple', 'banana', 'cherry']
uppercase_fruits = [fruit.upper() for fruit in fruits]
print(uppercase_fruits)  # 輸出:['APPLE', 'BANANA', 'CHERRY']
# 創建一個包含 0 到 9 的平方的串列

squares = [x**2 for x in range(10)]
print(squares)  # 輸出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

串列與其他資料結構的比較

  • 元組(Tuple):類似於串列,但不可變(immutable),使用小括號 () 表示。
  • 集合(Set):無序且不重複的元素集合,使用大括號 {} 表示。
  • 字典(Dictionary):鍵-值對集合,使用大括號 {} 表示。

實際應用示例

數據統計

scores = [85, 90, 78, 92, 88]

average = sum(scores) / len(scores)
print(f"平均分數為:{average}")

篩選數據

numbers = [1, 2, 3, 4, 5, 6]

# 獲取偶數串列
evens = [num for num in numbers if num % 2 == 0]
print(evens)  # 輸出:[2, 4, 6]

處理字符串串列

names = ['Alice', 'Bob', 'Charlie']

# 將所有名字轉為大寫
upper_names = [name.upper() for name in names]
print(upper_names)  # 輸出:['ALICE', 'BOB', 'CHARLIE']

小結

Python 中的串列是一種強大而靈活的資料結構,掌握串列的基本操作和高級用法,將極大地提高您的編程能力。

在實際開發中,串列被廣泛應用於各種場景,如數據存儲、處理和傳遞等。建議您多多練習,熟悉串列的各種操作。


推薦閱讀

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *