在Python中,列表(list)是一種有序、可變的數據結構,用於存儲多個元素。列表可以包含不同類型的元素,包括整數、浮點數、字元串等。實際上列表有點類似C++語言中的數組,但僅僅只是類似,和數組還是有點不一樣的。列表非常適合利用順序和位置定位某一元素,尤其是當元素的順序或內容經常發生改變時。 在P ...
在Python中,列表(list)是一種有序、可變的數據結構,用於存儲多個元素。列表可以包含不同類型的元素,包括整數、浮點數、字元串等。實際上列表有點類似C++語言中的數組,但僅僅只是類似,和數組還是有點不一樣的。列表非常適合利用順序和位置定位某一元素,尤其是當元素的順序或內容經常發生改變時。
在Python列表使用方括弧[]
來表示,其中的元素用逗號,
分隔。下麵是一個簡單的列表示例:
fruits = ['apple', 'banana', 'orange']
這個列表fruits
包含了三個字元串元素:'apple'、'banana'和'orange'。
列表是可變的,這意味著您可以修改列表的內容。你可以通過索引來訪問和修改列表中的特定元素。索引從0開始,即第一個元素的索引為0。最後一個元素的索引為-1。
fruits = ['apple', 'banana', 'orange']
print(fruits[0]) # 輸出第一個元素 'apple'
print(fruits[-1]) # 輸出最後一個元素 'orange'
fruits[1] = 'cherry' # 修改第二個元素為 'cherry'
fruits.append('strawberry') # 在列表末尾添加 'strawberry'
del fruits[2] # 刪除第三個元素 'orange'
print(fruits) # 輸出修改後的列表 ['apple', 'cherry', 'strawberry']
列表支持許多其他有用的方法,如插入元素、移除元素、排序等。使用列表能夠方便地存儲和操作多個元素,因此在Python編程中經常被使用到。
創建列表
要想使用列表,肯定要先創建它,Python中創建列表的方式有以下幾種:
- 使用方括弧 [] 創建包含元素的列表:
my_list = [1, 2, 3, 4, 5]
- 使用 list() 函數將其他數據類型轉換為列表:
my_string = "hello"
my_list = list(my_string) #輸出['h', 'e', 'l', 'l', 'o']
- 使用列表推導式創建列表:
my_list = [x for x in range(10)] #輸出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 使用 range() 函數創建列表:
my_list = list(range(10)) #輸出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 使用 * 運算符創建重覆元素的列表:
my_list = [0] * 5 #輸出[0, 0, 0, 0, 0]
以上就是創建列表的幾種方式,可以看到,Python中創建列表的方式非常靈活,可以根據具體的需求選擇不同的方式。但是初學者的話,只要掌握第1、2種創建方式就可以了,後面在實踐的過程種慢慢掌握其他的。
訪問列表
創建了列表之後,我們肯定是需要訪問列表的,在Python中,有幾種常見的方式可以訪問列表(list)中的元素:
- 通過索引訪問:可以使用索引來訪問列表中的特定元素。索引從0開始,表示列表中的第一個元素,依次遞增。例如,
my_list[0]
表示列表my_list
中的第一個元素,my_list[1]
表示第二個元素,以此類推。
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 1
print(my_list[2]) # 3
- 使用切片訪問:可以使用切片(slice)操作符來獲取列表中的一個子列表。切片操作符使用方括弧
[]
,並指定起始索引和結束索引(不包含),中間用冒號:
分隔。例如,my_list[1:4]
表示從第二個元素到第四個元素(不包含)的子列表。
my_list = [1, 2, 3, 4, 5]
print(my_list[1:3]) # [2, 3]
print(my_list[:3]) # [1, 2, 3]
print(my_list[3:]) # [4, 5]
- 迭代訪問:可以使用迴圈結構(如
for
迴圈)來遍歷列表中的每個元素。迭代遍歷可以將列表中的每個元素逐個訪問並處理,非常方便。
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
# 這將依次列印出列表中的每個元素。
- 使用內置方法:列表還提供了許多內置方法和函數,可以方便地訪問和處理列表中的元素。例如,
len()
函數可以返回列表的長度(即元素個數);index()
方法可以返回給定元素在列表中的索引;count()
方法可以統計給定元素在列表中的出現次數等。
my_list = [1, 2, 3, 4, 5]
print(my_list.index(3)) # 2
my_list.append(6)
print(my_list) # [1, 2, 3, 4, 5, 6]
my_list.append(6)
my_count = my_list.count(6) # 元素6出現的次數
print(my_count) # 2
這些是一些常用的訪問列表的方式,可以根據具體的需求選擇合適的方式來操作列表中的元素。請註意,當訪問列表時,要確保索引或切片的範圍在列表的有效範圍內,以避免出現索引錯誤。
更改列表元素
創建列表之後,我們還需要對列表元素進行修改,包括增加元素,修改元素,刪除元素。在Python中,可以通過多種方式來更改列表(list)中的元素:
增加列表元素
當需要向Python列表中添加新元素時,我們可以使用以下幾種方式:
- 使用
append()
方法:可以使用append()
方法在列表的末尾添加一個元素。例如:
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # [1, 2, 3, 4]
- 使用
insert()
方法:可以使用insert()
方法在指定位置插入一個元素。該方法接受兩個參數,第一個參數是插入的位置(索引),第二個參數是要插入的元素。例如:
my_list = [1, 2, 3]
my_list.insert(1, 99)
print(my_list) # [1, 99, 2, 3]
- 使用
extend()
方法或+
運算符:可以使用extend()
方法將另一個列表的元素添加到當前列表的末尾,或者使用+
運算符將兩個列表連接起來。例如:
my_list = [1, 2, 3]
my_list.extend([4, 5])
print(my_list) # [1, 2, 3, 4, 5]
my_list = [1, 2, 3]
my_list = my_list + [4, 5]
print(my_list) # [1, 2, 3, 4, 5]
總結來說,我們可以使用 append()
、insert()
、extend()
方法或 +
運算符來向Python列表添加新元素。選擇具體的方式取決於你的需求。
修改列表元素
在Python中,可以使用索引或切片來修改列表中的元素。下麵我們給出幾種修改列表元素的常見方法:
- 使用索引賦值:可以通過使用索引來定位並直接修改列表中的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
my_list[0] = 100
print(my_list) # [100, 2, 3, 4, 5]
- 使用切片賦值:可以使用切片來一次性修改多個元素的值。示例如下:
my_list = [1, 2, 3, 4, 5]
my_list[1:3] = [200, 300]
print(my_list) # [1, 200, 300, 4, 5]
刪除列表元素
在Python中,有幾種方法可以刪除列表中的元素。下麵是一些常用的方法:
- 使用
del
關鍵字:可以使用del
關鍵字刪除列表中指定位置的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
del my_list[0]
print(my_list) # [2, 3, 4, 5```
- 使用
remove()
方法:可以使用remove()
方法刪除列表中的指定值的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
my_list.remove(3)
print(my_list) # [1, 2, 4, 5]
- 使用
pop()
方法:可以使用pop()
方法刪除列表中指定位置的元素,並返回被刪除的元素的值。如果沒有指定位置,預設刪除列表末尾的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
deleted_element = my_list.pop(2)
print(deleted_element) # 3
print(my_list) # [1, 2, 4, 5]
- 使用列表切片:可以使用切片來刪除列表中的一段元素。示例如下:
my_list = [1, 2, 3, 4, 5, 6]
my_list = my_list[:2] + my_list[4:]
print(my_list) # [1, 2, 4, 5]
需要註意的是,當刪除元素時,確保索引或值存在於列表中,以避免出現錯誤。此外,刪除操作會修改原列表,所以要謹慎操作。刪除列表元素是列表操作中比較容易出錯的,有幾個方面需要特別註意的(當然對於零基礎編程經驗的初學者暫時先不用管):
- 確保元素存在:在刪除列表元素之前,要確保要刪除的元素確實存在於列表中,否則會引發異常。可以使用條件語句(如
if
)或異常處理(如try-except
)來處理可能的異常情況。 - 謹慎使用索引:當使用索引刪除元素時,要確保索引值處於有效範圍內,否則會引發
IndexError
異常。要根據具體情況仔細考慮索引值是否正確。 - 註意列表長度變化:刪除元素後,列表的長度會發生變化。如果使用迴圈來遍歷列表並刪除元素,可能會導致漏刪或刪除錯誤的元素。一種解決方法是倒序遍歷列表來避免索引錯位。這種方法在leetcode編程中經常會被用到,非常好用。
- 不要直接迭代刪除:不要在迭代列表的同時直接刪除元素,這會導致迭代過程中的迭代順序和預期不一致,可能會出現意外結果。可以考慮在迭代過程中收集要刪除的索引或值,之後再進行批量刪除。
- 考慮使用切片刪除:對於需要刪除一段連續的元素的情況,可以使用切片來一次性刪除多個元素,這樣更高效。
刪除列表
使用完列表之後,如果不想在使用了,需要要刪除整個列表,可以使用del
關鍵字或者clear()
方法。
- 使用
del
關鍵字可以刪除整個列表對象,例如:
my_list = [1, 2, 3, 4, 5]
del my_list
print(my_list) #拋出異常
- 使用
clear()
方法可以清空列表中的所有元素,但是列表對象本身仍然存在,例如:
my_list = [1, 2, 3, 4, 5]
my_list.clear()
print(my_list) # []
註意,使用del
關鍵字刪除列表對象後,該對象將無法再被訪問,所以列印my_list
的值會出錯,而使用clear()
方法清空列表後,該列表對象仍然可以被訪問,只是其中不再包含任何元素。
更多精彩內容,請關註同名公眾:一點sir(alittle-sir)