列表是Python中用得比較多的一種數據結構,類似於java中數組,用於存儲多個數據,用成對中括號‘[ ]’表示,各個元素用逗號‘,’隔開,列表中的元素有有序的,先加入的元素排在前面,後加入的元素依次排在後面。不同於java數組的是Python中的列表可以存儲任意不同的數據類型,如整型、浮點型、布爾型、字符串和元組等,甚至還可以嵌套列表已經用戶自定義的數據類型。
列表的定義和賦值:
列表的定義有兩種方式,一種是應用中括弧,在定義的同時可以爲列表賦值,另一種是調用內置函數list()。具體使用如下:
'''Python列表的定義和賦值'''
# 一、應用中括弧定義:
list1 = [] #定義一個空列表
list2 = [1,1.5,True,'a','Python'] #定義一個列表的同時給列表賦值
# 二、調用內置函數list()定義:
list3 = list() #定義一個空列表
list4 = list([1,1.5,True,'a','Python']) #定義一個列表的同時給列表賦值
值得注意的是,當調用list()函數定義列表的時候,list()只有一個參數,且參數必須是一個系列,如列表、元組和字符串等,像這樣的定義將會報錯:list1 = list(1),list2 = list(True),並且,當傳入的是一個字符串時,得到的是以該字符串的每個字符爲元素的列表,而不是把該字符串作爲一個元素。
列表多的常用操作:
在定義好列表以後,接下來我們具體看看列表的常用操作。
索引
列表通過索引獲取列表中的某個元素或者多該元素進行操作,其方式爲:列表名[下標],不過列表的索引也是從零開始的,即第一個元素的下標是0,最後一個元素的下標是列表的長度-1,當引用越界時同樣也會報錯。
#列表的索引
>>> list2[0] #獲取第一個元素
1
>>> list2[4] #獲取最後一個元素,列表索引有效值期間爲0到len()-1之內
'Python'
特別的,Python的索引值也可以爲負數,最後一個元素爲-1,第一個元素爲-len()。
>>> list2[-1] #獲取最後一個元素
'Python'
>>> list2[-5] #獲取第一個元素
1
切片
通過索引可以獲得列表的一個元素值,而通過切片可以截取列表的某個片段,即得到的片段還是一個列表。其格式爲:列表名[初值:末值:步長],默認情況下,步長爲1。需要注意的是切片是前包括後不包括,也就是說,截取的片段包括初值而不包括末值,另外,初值或末值也可以省略。
>>> list2[0:5] #獲取列表的每個元素,等同於列表本身
[1, 1.5, True, 'a', 'Python']
>>> list2[0:5:1] #默認情況下步長爲1
[1, 1.5, True, 'a', 'Python']
>>> list2[0:-1] #同樣的切片中也可以用負數
[1, 1.5, True, 'a']
>>> list2[0:-1:2] #步長爲2
[1, True]
>>> list2[:] #省略初值和末值,缺省情況下,初值爲第一個元素,末值爲最後一個元素
[1, 1.5, True, 'a', 'Python']
常用函數
list.append(x):在列表list的尾部追加一個元素,類型可以爲列表允許的數據結構
list.extend(L):在list的尾部累加列表L,等價於list + L
list.insert(i,x):在列表給定的位置上插入一個元素,當i > len(list)時,等價list.append(x)
list.remove(x):刪除列表中第一次出現的元素x,如果列表中沒有x則會報異常
list.pop([ i ]):刪除給定位置上 i 的元素並返回,如果沒有指定則刪除最後一個元素並返回
list.index(x):返回元素x第一次出現位置的索引,如果列表中沒有x元素則報異常
list.count(x):返回列表中x出現的次數
list.sort():對列表的元素進行排序,其默認排序規則爲cmp(x , y)
list.reverse():顛倒元素的順序
>>> list2.append(2) #在列表的末尾追加元素2
>>> list2
[1, 1.5, True, 'a', 'python', 2]
>>> list2.extend([5,4,3]) #追加列表[5,4,3]
>>> list2
[1, 1.5, True, 'a', 'python', 2, 5, 4, 3]
>>> list2.insert(0,'new item') #下標爲0處插入元素
>>> list2
['new item', 1, 1.5, True, 'a', 'python', 2, 5, 4, 3]
>>> list2.insert(100,'new item')
>>> #當下標大於元素的個數時,在末尾插入
>>> list2
['new item', 1, 1.5, True, 'a', 'python', 2, 5, 4, 3, 'new item']
>>> list2.remove('new item') #刪除列表中第一個'new item'
>>> list2
[1, 1.5, True, 'a', 'python', 2, 5, 4, 3, 'new item']
>>> list2.pop(9) #刪除list2[9]並返回
'new item'
>>> list2
[1, 1.5, True, 'a', 'python', 2, 5, 4, 3]
>>> list2.index(1) #返回元素1的索引
0
>>> list2.count(2) #返回元素2在列表中的個數
1
>>> list2.sort() #對元素進行排序
>>> list2
[1, True, 1.5, 2, 3, 4, 5, 'a', 'python']
>>> list2.reverse()
>>> #顛倒list2中的元素
>>> list2
['python', 'a', 5, 4, 3, 2, 1.5, True, 1]