列表和列表推導式的使用
目錄
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以內的所有素數