[轉載] python補充知識點-----列表和列表推導式(1)

原博鏈接: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()對liebiaolst所有元素進行逆序
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以內的所有素數



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