1. 程式人生 > >Python(四)列表與列表推導式

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

一、列表(可變序列)

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以內的所有素數