【Python學習】列表
最近準備系統學習python,為了以後能及時查找到,先記錄下.
先說下啥叫序列,之前在用,感覺這個概念有個模糊,今天特意看了下,序列是python中最基本的數據結構,序列中的每一個元素都被分配一個序號,即元素的位置,也成為索引。類似於“數組”。python中包含6種內建序列,即列表,元組,字符串,Unicode字符串,buffer對象和xrange對象。
1.列表的內容是可變的(相對於元組),一般使用“[]”和“,”,如 M= [1,2,3,4]
2.列表元素操作:
(1)元素賦值:可以類似於數組賦值進行列表賦值,可以對一個列表中的元素賦不同類型的值,但不能為一個不存在的元素的位置進行賦值。
(2)增加元素:可使用list.append(obj),list代表列表,obj代表需要添加到list列表末尾的對象。
(3)刪除元素:del M[0]
(4)分片賦值:常使用list()函數
a.若M=list(‘今天天氣多雲’),[‘今‘,‘天‘,‘天‘,‘天‘,‘氣‘,‘多‘,‘雲‘],list()函數可以直接將字符串轉換為列表。
b.若M=list(‘ae‘),M[1:]=list(‘bcd‘),list()函數可以使用與原序列不等長的序列將分片替換。
c.若M=list(‘今天天氣不錯‘),M[2:2]=list(‘安徽省‘),list函數可以在不替換任何原有元素的情況下在任意位置插入新元素。
d.可利用分片賦值進行元素刪除,將準備刪除的元素置為空,可對一個序列中任意位置的元素進行刪除。
3.列表是可嵌套的。
4.列表的方法
(1)list.append(obj),是在列表的末尾添加新對象
(2)list.count(obj),用於統計某個元素在列表中出現的次數,list代表列表,obj代表列表中統計的對象
(3)list.extend(seq),list代表列表,seq代表元素列表
與序列相加的主要區別:extend()方法修改了被擴展的序列,原始的連接操作會返回一個全新的列表
(4)list.index(obj),用於從列表中找出某個值第一個匹配項的索引位置。
(5)list.insert(index,obj)
(分片賦值也可實現)
(6)list.pop(obj=list[-1]),list代表是列表,obj為可選擇的參數,代表要移除列表元素的對象。用於移除列表中的一個元素(默認最後一個元素),並且返回該元素的值。
a.list.pop(),不傳參數,默認移除最後一個元素
b.list.pop(2),刪除a[2]元素
pop方法是唯一一個既能修改列表又能方法元素值(除了None)的列表方法。
註:pop方法可實現一種常見的數據結構—棧,類似於堆放盤子,LIFO(last in firsr out),後進先出。入棧(push),python沒有入棧方法,但可以使用append方法替代,出棧(pop)。
(7)list.remove(obj),list代表是列表,obj為列表中要移除的對象。用於移除列表中某個值的第一個匹配項。是一個沒有返回值的原位置元素變更方法。
(8)list.reverse(),list代表是列表,該方法不需要傳入參數。用於反向列表中的元素。是一個沒有返回值的原位置元素變更方法。
(9)list.sort(func),list代表列表,func為可選參數,若指定參數,會使用該參數的方法進行排序。
對列表進行排序,且保持原列表排列順序,先將原始列表使用切片方式進行賦值,如b = a[:]
(10)list.sorted(),直接獲取原始列表副本進行排序
(11)list.clear(),list代表列表,不需要傳入參數。用於清空列表。
(12)list.copy(),list代表列表,不需要傳入參數。用於賦值列表,類似於a[:]
(13)高級排序,sort方法有兩個可選參數,即key,reverse。
#len按字符串長度由短到長進行排序
#傳入2個參數,按照字符串長度由長到短進行排序
#排序後逆序
2018/4/22
【Python學習】列表