python中l(wèi)ist方法詳解
介紹: list 是 Python 中的一種內(nèi)置數(shù)據(jù)類型,代表一個可變的有序序列。list 類型的對象可以使用多個方法來操作和修改其中的元素。 list: 列表 Built-in mutable sequence. 內(nèi)置可變的序列 定義列表的時候使用的是[ ], 也可以包含多個不同類型的元素,多個元素之間也是用逗號分隔
一、創(chuàng)建一個列表
list_data = [1, 2, 3, 4, 5] # 創(chuàng)建一個列表 print(list_data, type(list_data)) # 打印列表并輸出它的類型
以上實例輸出結(jié)果如下:
[1, 2, 3, 4, 5] <class 'list'>
二、 訪問列表中的元素
編輯 例如,以下是如何獲取 list 中的元素:
fruits = ['apple', 'banana', 'cherry'] # 取第一個元素 print(fruits[0]) # 'apple' # 取第二個元素 print(fruits[1]) # 'banana' # 從右邊獲取右邊的第一個元素 print(fruits[-1]) # 'cherry'
如果想獲取 list 中的最后一個元素,也可以使用 -1 索引:
# 返回列表的最后一個元素 print(fruits[-1]) # elderberry # 返回一個列表的一部分,其中包含除最后兩個元素之外的所有元素 print(fruits[:-2]) # ['apple', 'banana', 'cherry'] # 返回包含列表最后三個元素的列表切片 print(fruits[-3:]) # ['cherry', 'date', 'elderberry']
三、append 方法:
append() 方法用于在列表的末尾追加元素,該方法的標準語法格式如下:
list.append(obj)
結(jié)論:
列表可包含任何數(shù)據(jù)類型的元素,單個列表中的元素?zé)o須全為同一類型。
append() 方法向列表的尾部添加一個新的元素。
列表是以類的形式實現(xiàn)的。“創(chuàng)建”列表實際上是將一個類實例化。因此,列表有多種方法可以操作。extend()方法只接受一個列表作為參數(shù),并將該參數(shù)的每個元素都添加到原有的列表中
四、extend 方法:
extend() 函數(shù)用于在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)。 extend()方法語法:
list.extend(seq)
seq -- 元素列表。
該方法沒有返回值,但會在已存在的列表中添加新的列表內(nèi)容。
示例如下:
fruits = ['apple', 'banana', 'cherry'] more_fruits = ['orange', 'lemon'] fruits.extend(more_fruits) print(fruits) # ['apple', 'banana', 'cherry', 'orange', 'lemon']
五、insert 方法:
在指定位置插入一個元素,append() 和 extend() 方法只能在列表末尾插入元素,如果希望在列表中間某個位置插入元素,那么可以使用 insert() 方法。 insert() 的語法格式如下:
listname.insert(index , obj)
結(jié)論:insert() 主要用來在列表的中間位置插入元素,如果你僅僅希望在列表的末尾追加元素,那我更建議使用 append() 和 extend()。
六、remove 方法:
remove() 函數(shù)用于移除列表中某個值的第一個匹配項。 remove()方法語法:
list.remove(obj)
obj -- 列表中要移除的對象。
該方法沒有返回值但是會移除列表中的某個值的第一個匹配項。
示例如下:刪除列表中第一個匹配的元素。
fruits = ['apple', 'banana', 'cherry', 'banana'] fruits.remove('banana') print(fruits) # ['apple', 'cherry', 'banana']
結(jié)論: remove() 方法只會刪除第一個和指定值相同的元素,而且必須保證該元素是存在的,否則會引發(fā) ValueError 錯誤
七、pop 方法:
pop() 方法用來刪除列表中指定索引處的元素,具體格式如下:
list.pop([index=-1])
list 表示列表名稱
index 表示索引值
obj -- 可選參數(shù),要移除列表元素的索引值,不能超過列表總長度,默認為 index=-1,刪除最后一個列表值,類似于數(shù)據(jù)結(jié)構(gòu)中的“出棧”操作
該方法返回從列表中移除的元素對象。
示例如下:刪除并返回指定位置的元素,默認為列表末尾的元素
fruits = ['apple', 'banana', 'cherry'] last_fruit = fruits.pop() print(last_fruit) # 'cherry' print(fruits) # ['apple', 'banana']
結(jié)論:pop() 相對應(yīng)的方法,就是 push(),該方法用來將元素添加到列表的尾部,類似于數(shù)據(jù)結(jié)構(gòu)中的“入棧”操作。但是 Python 是個例外,Python 并沒有提供 push() 方法,因為完全可以使用 append() 來代替 push() 的功能。
八、del方法:
del 可以刪除列表中的單個元素,格式為:
del listname[index]
- listname 表示列表名稱,index 表示元素的索引值
示例如下:
fruits = ['apple', 'banana', 'cherry'] del fruits[2] print(fruits) # 'apple', 'banana'
del 也可以刪除中間一段連續(xù)的元素,格式為:
del listname[start : end]
start 表示起始索引
end 表示結(jié)束索引
del 會刪除從索引 start 到 end 之間的元素,不包括 end 位置的元素
示例如下:
fruits = ['apple', 'banana', 'cherry'] del fruits[0:2] print(fruits) # 'cherry'
九、clear()方法:
clear()方法語法:
list.clear()
clear() 用來刪除列表的所有元素,也即清空列表 示例如下:
fruits = ['apple', 'banana', 'cherry'] fruits.clear() print(fruits) # []
十、index( ) 方法:
index() 方法用來查找某個元素在列表中出現(xiàn)的位置(也就是索引),如果該元素不存在,則會導(dǎo)致 ValueError 錯誤,所以在查找之前最好使用 count() 方法判斷一下。 index()方法語法:
list.index(obj, start, end)
lobj-- 表示要查找的元素
start-- 可選,查找的起始位置。
end-- 可選,查找的結(jié)束位置。
index() 方法會返回元素所在列表中的索引值。
start 和 end 參數(shù)用來指定檢索范圍:
- start 和 end 可以都不寫,此時會檢索整個列表;
- 如果只寫 start 不寫 end,那么表示檢索從 start 到末尾的元素;
- 如果 start 和 end 都寫,那么表示檢索 start 和 end 之間的元素。
示例如下:返回第一個匹配的元素的索引。
fruits = ['apple', 'banana', 'cherry'] banana_index = fruits.index('banana') print(banana_index) # 1
結(jié)論:index() 方法只返回元素在列表中第一次出現(xiàn)的位置索引,如果需要查找所有出現(xiàn)位置的索引,可以使用列表解析或循環(huán)等方法實現(xiàn)。
十一、count 方法:
count() 方法用來統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù),基本語法格式為:
list.count(obj)
obj -- 列表中統(tǒng)計的對象。
如果 count() 返回 0,就表示列表中不存在該元素,所以 count() 也可以用來判斷列表中的某個元素是否存在
示例如下::返回列表中指定元素的出現(xiàn)次數(shù)
fruits = ['apple', 'banana', 'cherry', 'banana'] banana_count = fruits.count('banana') print(banana_count) # 2
結(jié)論:count() 方法只統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù),而不會返回元素在列表中出現(xiàn)的位置索引。如果需要查找元素在列表中的位置索引,可以使用 index() 方法。
十二、sort 方法:
sort() 函數(shù)用于對原列表進行排序,如果指定參數(shù),則使用比較函數(shù)指定的比較函數(shù)。 sort()方法語法:
list.sort(cmp=None, key=None, reverse=False)
cmp -- 可選參數(shù), 如果指定了該參數(shù)會使用該參數(shù)的方法進行排序。
key -- 主要是用來進行比較的元素,只有一個參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse -- 排序規(guī)則,reverse = True 降序, reverse = False 升序(默認)。
示例如下:按升序排列列表中的元素。
# 升序排序 a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] a.sort() print(a) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] # 降序排序 a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] a.sort(reverse=True) print(a) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] # 根據(jù)字符串長度排序 fruits = ['apple', 'banana', 'cherry', 'durian', 'elderberry'] fruits.sort(key=len) print(fruits) # ['apple', 'banana', 'cherry', 'durian', 'elderberry']
結(jié)論:sort() 方法是 Python 列表中的一個方法,用于原地對列表進行排序,即將列表中的元素按一定的規(guī)則重新排列。默認情況下,sort() 方法按升序?qū)α斜磉M行排序,也可以通過傳遞 reverse=True 參數(shù)來按降序排序。 sort() 方法是原地排序,即會修改原始列表。如果需要對列表進行排序但又不想修改原始列表,可以使用 sorted() 內(nèi)置函數(shù)。
十三、reverse 方法:
reverse() 函數(shù)用于反向列表中元素。reverse()方法語法:
list.reverse()
示例如下:將列表中的元素倒序排列
fruits = ['apple', 'banana', 'cherry'] fruits.reverse() print(fruits) # ['cherry', 'banana', 'apple']
結(jié)論:reverse() 方法是原地反轉(zhuǎn),即會修改原始列表。如果需要對列表進行反轉(zhuǎn)但又不想修改原始列表,可以使用切片操作來創(chuàng)建一個反轉(zhuǎn)后的新列表,例如 fruits[::-1]。
十四、copy方法:
copy() 是 list 類的一個方法,用于創(chuàng)建一個列表的副本。copy() 方法不帶參數(shù),它返回一個新列表,該列表包含原始列表中所有元素的副本。 例如,以下是如何使用 copy() 方法創(chuàng)建一個列表的副本:
fruits = ['apple', 'banana', 'cherry'] fruits_copy = fruits.copy() print(fruits_copy) # ['apple', 'banana', 'cherry']
上面的例子中,copy() 方法創(chuàng)建了一個新的 list 對象 fruits_copy,其中包含與原始列表 fruits 相同的元素。修改 fruits_copy 不會影響原始列表 fruits。 需要注意的是,copy() 方法只復(fù)制列表中元素的值,而不是元素本身。如果列表中包含可變對象(如列表或字典),則副本列表中的元素將包含與原始列表相同的可變對象的引用。這意味著如果修改了原始列表中的可變對象,副本列表中相應(yīng)的元素也會受到影響。 在 Python 中,可以使用 = 運算符來復(fù)制列表。但是,使用 = 運算符復(fù)制列表只會創(chuàng)建原始列表的一個引用,而不是創(chuàng)建一個副本。這意味著修改一個列表會同時修改另一個列表。因此,如果需要復(fù)制列表并保留其獨立性,請使用 copy() 方法。 **淺拷貝:**copy() 方法進行淺拷貝的示例:
a = [1, 2, [1, 2]] b = a.copy() # 修改原始列表的第三個元素 a[2][0] = 5 print(a) # [1, 2, [5, 2]] print(b) # [1, 2, [5, 2]]
在上面的例子中,a 是一個包含整數(shù)和嵌套列表的列表。使用 copy() 方法將 a 復(fù)制到 b 中,然后修改了 a 中的嵌套列表中的第一個元素。在淺拷貝后的 b 中,嵌套列表中的第一個元素也發(fā)生了變化。 **深拷貝:**copy 模塊中的 deepcopy() 函數(shù)進行深拷貝的示例: 深拷貝是指創(chuàng)建一個新的列表對象,并遞歸地復(fù)制原始列表中的所有元素和嵌套的可變對象。這意味著如果修改原始列表中的嵌套對象,這些對象在深拷貝后的新列表中不會發(fā)生變化
import copy a = [1, 2, [1, 2]] b = copy.deepcopy(a) # 修改原始列表的第三個元素 a[2][0] = 5 print(a) # [1, 2, [5, 2]] print(b) # [1, 2, [1, 2]]
使用 copy 模塊中的 deepcopy() 函數(shù)將 a 深拷貝到 b 中,然后修改了 a 中的嵌套列表中的第一個元素。在深拷貝后的 b 中,嵌套列表中的第一個元素沒有發(fā)生變化。 需要注意的是,深拷貝比淺拷貝更慢并且更消耗內(nèi)存,因為它需要遞歸地復(fù)制所有嵌套的對象。通常,只有在需要保留原始列表和新列表之間的獨立性,并且原始列表包含嵌套的可變。 結(jié)論: 淺拷貝(copy):拷貝父對象,不會拷貝對象的內(nèi)部的子對象。 深拷貝(deepcopy): copy 模塊的deepcopy 方法,完全拷貝了父對象及其子對象。
十五、總結(jié):
list 對象是可變的,即對 list 對象的操作會直接修改原列表,而不是返回一個新列表,Python 中的列表(list)是一種有序、可變的數(shù)據(jù)類型,可以容納任何類型的元素,包括整數(shù)、浮點數(shù)、字符串、甚至其他列表。列表通過方括號 [ ] 來定義,可以使用索引來訪問或修改列表中的元素。需要注意的是列表是可變的,即可以修改它們的內(nèi)容。如果需要在不修改原始列表的情況下進行操作,可以使用切片操作來創(chuàng)建一個新的列表,或者使用 copy() 方法來創(chuàng)建一個原始列表的副本。
以上就是python中l(wèi)ist方法詳解的詳細內(nèi)容,更多關(guān)于python list方法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實現(xiàn)的讀取網(wǎng)頁并分詞功能示例
這篇文章主要介紹了python實現(xiàn)的讀取網(wǎng)頁并分詞功能,結(jié)合實例形式分析了Python使用requests模塊讀取網(wǎng)頁,以及jieba庫分詞的相關(guān)操作技巧,需要的朋友可以參考下2019-10-10解讀torch.cuda.amp自動混合精度訓(xùn)練之節(jié)省顯存并加快推理速度
這篇文章主要介紹了torch.cuda.amp自動混合精度訓(xùn)練之節(jié)省顯存并加快推理速度問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08詳解Python的迭代器、生成器以及相關(guān)的itertools包
這篇文章主要介紹了詳解Python的迭代器、生成器以及相關(guān)的itertools包,Iterators、Generators是Python的高級特性,亦是Python學(xué)習(xí)當中必會的基本知識,需要的朋友可以參考下2015-04-04python項目中requirements.txt的用法實例教程
Python項目中必須包含一個requirements.txt文件,用于記錄所有依賴包及其精確的版本號,以便新環(huán)境部署,下面這篇文章主要給大家介紹了關(guān)于python項目中requirements.txt用法的相關(guān)資料,需要的朋友可以參考下2022-06-06對python numpy數(shù)組中冒號的使用方法詳解
下面小編就為大家分享一篇對python numpy數(shù)組中冒號的使用方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04