一、列表的基本定義與操作
在Python中,列表是最常用的數據結構之一,可以存儲任意類型的數據,比如字符串、數字、布爾值等等。列表可以定義為空,也可以包含任意數量的元素,聲明一個列表的方法如下:
list_name = []
或者
list_name = [element1, element2, ..., elementn]
其中,element1, element2, …, elementn 可以是任意類型的數據,它們需要用逗號分隔開。例如下面這個列表就包含了三個字符串元素:
fruits = ['apple', 'banana', 'cherry']
創建了列表之後,我們可以對列表進行一系列的操作。例如,要訪問列表中的特定位置的元素,可使用下標索引,從0開始。例如以下代碼實現了訪問列表中的第2個元素:
fruits = ['apple', 'banana', 'cherry']
second_fruit = fruits[1]
print(second_fruit) # 輸出:'banana'
另外,我們還可以對列表進行添加、刪除元素等操作。其中,添加元素的方法有兩種,分別是append()和insert()方法。append()方法可以直接在列表的末尾添加一個元素,而insert()可以在一個指定位置添加元素。例如以下代碼實現了在列表結尾添加一個’orange’元素以及在第二個位置插入一個’lemon’元素:
fruits = ['apple', 'banana', 'cherry']
fruits.append('orange')
fruits.insert(1, 'lemon')
print(fruits) # 輸出:['apple', 'lemon', 'banana', 'cherry', 'orange']
刪除元素的方法有pop()和remove()。pop()可刪除指定位置的元素並返回它的值,而remove()則可以刪除指定的元素。例如以下代碼實現了彈出列表的第二個元素,以及移除列表中的’apple’元素:
fruits = ['apple', 'banana', 'cherry']
second_fruit = fruits.pop(1)
fruits.remove('apple')
print(fruits) # 輸出:['banana', 'cherry']
二、列表的切片操作
列表的切片操作是指對列表進行切片,返回一個新的列表。其用法為:
new_list = old_list[start_index:end_index:step]
其中,start_index表示切片的起始位置(包含該位置的元素)。end_index表示切片的結束位置(不包含該位置的元素)。step表示切片步長,默認為1。下面是一個簡單的例子:
fruits = ['apple', 'banana', 'cherry', 'orange', 'peach', 'plum']
new_fruits = fruits[1:4:2]
print(new_fruits) # 輸出:['banana', 'orange']
在該例子中,我們從fruits列表中取出索引為[1:4:2]的元素構成了一個新的列表new_fruits。其中start_index=1,end_index=4,step=2,所以new_fruits包含了fruits中的第1、3個元素’banana’和’orange’。
三、列表的排序方法
Python中還提供了多種排序列表的方法,包括sort()方法和sorted()函數:
sort()方法可以對列表進行就地排序,即原本的列表的元素順序會被改變。sort()方法還有兩個可選參數:reverse和key。其中reverse用於指定是否降序排列,默認為False;而key則是一個函數,自定義一個函數作為key的值,用於排序規則。例如以下代碼演示了對一個數字列表進行排序:
nums = [3, 6, 1, 5, 0, -2, 4]
nums.sort()
print(nums) # 輸出:[-2, 0, 1, 3, 4, 5, 6]
sorted()函數可以對列表進行排序,返回排序後的結果,原列表不會被修改。sorted()函數同樣有可選參數:reverse和key。例如以下代碼演示了對一個字符串列表進行排序:
fruits = ['apple', 'banana', 'cherry', 'orange', 'peach', 'plum']
new_fruits = sorted(fruits, reverse=True)
print(new_fruits) # 輸出:['plum', 'peach', 'orange', 'cherry', 'banana', 'apple']
四、列表的操作複雜度
在存儲和操作數據時,我們不僅要關注功能的實現,還需要關注效率,即操作的時間和空間複雜度。針對列表,以下是它的一些基礎操作的時間複雜度:
- Indexing(通過下標獲取元素):O(1)
- Insert/Delete at the end of a List(在列表末尾進行添加/刪除):O(1)
- Insert/Delete at the beginning of a List(在列表開頭進行添加/刪除):O(n)
- Insert/Delete in the middle of a List(在列表中間進行添加/刪除):O(n)
因此,在使用列表時,盡量避免在開頭進行添加/刪除操作,可以在需要頻繁進行這類操作時選擇使用其他數據結構。
五、總結
Python的列表是一種非常實用的存儲和操作有序信息的工具,它可以存儲任意類型的數據實現多種操作,包括訪問元素、添加/刪除元素、切片等。Python 中的列表還提供了多種排序操作,但由於它的操作複雜度,我們需要謹慎地使用,尤其是需要頻繁插入和刪除元素的場景。
原創文章,作者:LAMZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147914.html