1. 程式人生 > 實用技巧 >列表和列表推導式的使用

列表和列表推導式的使用

目錄

list

一、列表(可變序列)

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()用於將另一個列表中的所有元素追加至當前列表的尾部

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

轉載原文