Python(四)列表與列表推導式

原文鏈接:https://blog.csdn.net/lexi3555/article/details/80633441

版權聲明:本文爲博主原創文章,遵循 CC 4.0 by-sa 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/lexi3555/article/details/80633441
一、列表(可變序列)

1、常用的列表對象方法

方法  說明
lst.append(x) 將元素x添加至列表lst尾部
lst.extend(L) 將列表L中所有元素添加至列表lst尾部
lst.insert(index,x)  在列表lst指定位置index處添加元素x,該位置後面所有元素後移一個位置
lst.remove(x) 在列表lst中刪除首次出現的指定元素,該元素之後的所有元素前移一個位置
lst.pop([index]) 刪除並返回列表lst中下標爲index(默認爲-1)的元素
lst.clear() 刪除列表lst中的所有元素,但保留列表對象
lst.index(x) 返回列表lst中的第一個值爲x的元素的下標,若不存在值爲x的元素則拋出異常
lst.count(x) 返回指定元素x在列表lst中出現次數
lst.reverse() 對列表 lst所有元素進行逆序
lst.sort(key=None,reverse=False) 對列表lst中的元素進行排序,key用來指定排序依據,reverse決定升序(False)還是降序(True)
lst.copy() 返回列表lst的淺複製

2、append()、insert()、extend()
這個三個方法都可以向列表中添加元素

append()用於向列表尾部追加一個元素

insert()用於向列表任意指定位置插入一個元素

extend()用於將另一個列表中的所有元素追加至當前列表的尾部

(1)原地操作,不影響列表對象在內存中的起始地址

(2)非原地操作情形,使用運算符+和*

3、pop()、remove()、clear()

這三個方法都用於刪除列表中的元素,都是原地操作,不改變內存地址

pop()用於刪除並返回指定位置(默認是最後一個)上的元素

remove()用於刪除列表中第一個值與指定值相等的元素

clear()用於清空列表

del  刪除列表中指定位置的元素

4、count()、index()、in

count()用於返回列表中指定元素出現的次數

index()用於返回指定元素在列表中首次出現的位置,如果不存在則拋出異常

in 測試列表中是否存在某個元素

5、sort()、reverse()

(1)原地操作,即處理過後,列表中原來的順序全部丟失

sort()用於按照指定的規則對所有元素進行排序,默認規則是直接比較元素大小

reverse()用於將列表所有元素逆序排列

(2)sorted()、reversed()不改變原來列表順序,建新表,內存地址改變

6、內置函數對列表的操作

max()、min()用於返回列表中所有元素的最大值和最小值

sum()用於返回數值型列表中所有元素之和

len()用於返回列表中元素個數

zip()用於將多個列表中元素重新組合爲元組並返回包含這些元組的zip對象

enumerate()用於返回包含若干下標和值的迭代對象

注意:當列表增加或刪除元素時,列表對象自動進行內存的擴展或收縮,從而保證元素之間沒有縫隙,。Python列表的這個內存自動管理功能可以大幅度減少程序員的負擔,但刪除和插入非尾部元素時會涉及列表中大量元素的移動,效率較低,並且對於某些操作會造成意外的錯誤結果。因此,除非確實有必要,否則應儘量從列表尾部進行元素的增加和刪除操作,這不僅可以大幅度提高列表的處理速度,並且總是可以保證得到正確的結果。

二、列表推導式

[表達式 for 變量 in 序列或迭代對象]

列表推導式在邏輯上相當於一個循環,只是形似更加簡潔

1、使用列表推導式實現嵌套列表的平鋪

2、過濾不符合條件的元素

(1)列出當前文件夾下所有Python的源文件

(2)選擇所有大於0的數字組成新表

(3)字典中對成績的各項操作

(4)找出列表中元素最大值的位置

3、在列表推導式中使用多個循環,實現多序列元素的任意組合,並且可以結合條件語句過濾特定元素

4、使用列表推導式實現矩陣轉置(三種方式)

5、列表推導式可以使用函數或複雜表達式

6、列表推導式支持文件對象迭代

7、使用列表推導式生產100以內的所有素數


--------------------- 
版權聲明:本文爲CSDN博主「樂希」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lexi3555/article/details/80633441

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章