標籤:python
列表list
Python內建的一種資料類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。
一、定義列表
>>> list1=[‘a‘,‘b‘,‘c‘,1,2,3]>>> list2=[‘a‘,‘b‘,‘c‘,[1,2,3]]
從上面兩個列表,可以總結出列表的特點如下:
1.用中括弧括起來,元素之間用逗號分隔。
2.字串需要使用單引號,整數不用。
3.list裡面的元素的資料類型也可以不同。
4.list元素也可以是另一個list。
二、列表的基本操作
#查看列表元素個數
>>> len(list1)6
#用索引來訪問列表中每一個位置的元素,索引是從0開始的
>>> list1[0]‘a‘>>> list1[1]‘b‘>>> list1[-1]3>>> list2[-1][0]1
注意:最後一個元素的索引為-1,以此類推,倒數第二個的為-2……;索引是不能超出範圍的否則會報一個IndexError錯誤。
#追加一個元素
>>> list1.append(4)>>> list1[‘a‘, ‘b‘, ‘c‘, 1, 2, 3, 4]
#刪除指定內容的元素
>>> list1.remove(‘a‘)>>> list1[‘b‘, ‘c‘, 1, 2, 3, 4]
#根據索引刪除元素,如果不指定索引,預設從最後一個開始刪除。
>>> list1.pop(0)‘b‘>>> list1[‘c‘, 1, 2, 3, 4]
#統計列表中相同元素的個數
>>> list1.count(1)1
#統計指定元素的索引號
>>> list1.index(‘c‘)0
#在指定索引的元素之後添加一個元素
>>> list1.insert(1,‘d‘)>>> list1[‘c‘, ‘d‘, 1, 2, 3, 4]
#倒序列表排序
>>> list1.insert(1,‘d‘)>>> list1[‘c‘, ‘d‘, 1, 2, 3, 4]
#正向排序元素
>>> list1.sort()>>> list1[1, 2, 3, 4, ‘c‘, ‘d‘]
#把一個列表擴充到另一個列表中
>>> list1.extend(list2)>>> list1[1, 2, 3, 4, ‘c‘, ‘d‘, ‘a‘, ‘b‘, ‘c‘, [1, 2, 3]]
#列表串連
>>> list1+list2[1, 2, 3, 4, ‘c‘, ‘d‘, ‘a‘, ‘b‘, ‘c‘, [1, 2, 3], ‘a‘, ‘b‘, ‘c‘, [1, 2, 3]]
注意:列表中的元素沒有發生變化
#清空列表
>>> list1=[]>>> len(list1)0
總結:
列表的索引號是從0開始的;
可以使用dir()查看列表的使用方法,括弧中輸入列表的名稱;
使用help()查看操作的協助,括弧中輸入”列表名.操作”,例如:
>>> help(list1.insert)Help on built-in function insert: insert(...)L.insert(index, object) -- insert object before index
補充:
有時候我們需要將一個列表重新排序的結果定義給一個新的列表,而且不改變原列表,就用到了sorted()和reversed()
sorted()是python的內建函數,並不是可變對象(列表、字典)的特有方法,sorted()函數需要一個參數(參數可以是列表、字典、元組、字串),無論傳遞什麼參數,都將返回一個以列表為容器的傳回值,如果是字典將返回鍵的列表,例如:
>>> a=[4,3,2,1]>>> b=sorted(a) #實現正向排序後定義給另一個列表>>> b[1, 2, 3, 4]>>> a#列表a並沒有發生變化[4, 3, 2, 1] >>> c=sorted(b,reverse=True) #實現倒序排列後定義給另一個列表>>> c[4, 3, 2, 1]>>> a[4, 3, 2, 1]
reversed()也是python的一個內建函數,作用是返回序列的反向訪問的迭代器,參數可以是列表,元組,字串,不改變原對象,例如:
>>> a=[1,2,3,4]>>> b=reversed(a)>>> b<listreverseiterator object at 0x0000000000602B00> #b是一個迭代器>>> c=list(reversed(a)) #實現反轉一個列表的結果定義給另一個列表>>> c[4, 3, 2, 1]>>> a[1, 2, 3, 4]
三、切片
可以使用分區操作來訪問一定範圍內的元素。分區通過冒號隔開的兩個索引來實現:
分區對於提取序列的一部分很有用。切片的原則是”取頭不取尾”,即第一個索引是要提取的第一個元素的編號,而最後的索引則是分區之後剩餘部分的第一個元素的編號。
例如:
>>> list2[‘a‘, ‘b‘, ‘c‘, [1, 2, 3]]>>> list2[1:3][‘b‘, ‘c‘]
如果不指定第一個索引,預設從頭開始切取;如果不指定第二個索引,預設切到最後,例如:
>>> list2[:3][‘a‘, ‘b‘, ‘c‘]>>> list2[2:][‘c‘, [1, 2, 3]]
#步長切片
進行分區的時候,分區的開始和結束需要進行指定,按照步長逐個遍曆序列的元素,然後返回開始和結束點之間的所有元素。例如:
>>> list3=[0,1,2,3,4,5,6,7,8,9]>>> list3[::2][0, 2, 4, 6, 8]>>> list3[1::2][1, 3, 5, 7, 9]
練習
1.建立一個空列表
>>> lst1=[]
2.添加10個列表元素,包含字串,數字
>>> lst1=[0,1,2,3,4,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
3.從第5個索引號起插入5個元素
>>> lst1.insert(5,5)
>>> lst1.insert(5,6)
>>> lst1.insert(5,7)
>>> lst1.insert(5,8)
>>> lst1.insert(5,9)
4.分別用切片方法取出前5個,和後5個
>>> lst1[:5]
[0, 1, 2, 3, 4]
>>> lst1[-5:]
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]
5.分別取出奇數項,和偶數項
>>> lst1.sort()
>>> lst1[::2]
[0, 2, 4, 6, 8, ‘a‘, ‘c‘, ‘e‘]
>>> lst1[1::2]
[1, 3, 5, 7, 9, ‘b‘, ‘d‘]
6.print出列表元素個數
>>> len(lst1)
15
7.刪除某個元素
>>> lst1.remove(‘a‘)
8.刪除列表最後一個元素
>>> lst1.pop(-1)
‘e‘
9.刪除列表第5個元素
>>> lst1.pop(4)
4
本文出自 “網路技術” 部落格,請務必保留此出處http://fengjicheng.blog.51cto.com/11891287/1927616
python筆記--列表