在「Python之基本數據類型概覽」一節中,大概介紹了列表的基本用法,本節咱們詳細學一下列表。python
如何定義列表:在[]
內以英文裏輸入法的逗號,
,按照索引,存放各類數據類型,每一個位置表明一個元素。app
回顧一下列表的特色:code
一、可存放多個值。blog
二、按照從左到右的順序定義列表元素,下標從0開始順序訪問,是有序的。排序
三、可修改指定索引位置對應的值,可變。索引
一、追加class
用append
方法將數據追加到列表的尾部變量
names = ['Kwan', 'Kobe'] names.append('KK') names.append('LL') print(names)
二、插入循環
用insert
方法,可將數據插入任何位置數據類型
names = ['Kwan', 'Kobe', 'KK', 'LL'] names.insert(2, '小明') print(names)
三、合併
用extend
方法,能夠把另一個列表的值合併進來
names = ['Kwan', 'Kobe', 'KK'] n = ['小明', '小紅'] names.extend(n) print(names)
四、列表嵌套
names = ['Kwan', 'Kobe', 'KK'] names.insert(2, ['李白', 'sh']) print(names) print(names[2][1])
一、del 直接刪除
names = ['Kwan', 'Kobe', 'KK'] del names[1] print(names)
二、pop
names = ['Kwan', 'Kobe', 'KK', 'LL'] names.pop() # 括號裏不加參數,默認刪除最後一個元素並返回被刪除的值 names.pop(1) # 刪除指定索引的元素 print(names)
三、clear 清空
names = ['Kwan', 'Kobe', 'KK'] names.clear() print(names)
直接從新賦值便可
names = ['Kwan', 'Kobe', 'KK', "LL"] names[1] = 'James' names[3] = '小明' print(names)
index()
方法用來查找對應元素的索引,count()
方法用來計算指定元素的個數
names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL'] print(names.index('KK')) print(names.count('Kwan'))
切片就像切面包,能夠同時取出元素的多個值。
語法:name[start : end]
names = ['Kwan', 'Kobe', 'KK', 'LL', '小明'] print(names[1:3]) # 不會包含索引爲3的元素'LL'
注:切片的特性是顧頭不顧尾,即start對應索引的元素會被包含進去,可是尾部只會包含到end-1。
一、倒着切片
names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL'] print(names[-4:-1])
由於顧頭不顧尾的特性,此時並未將最後一個打印出來,若是想把最後一個也包含進來該怎麼作呢?
names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL'] print(names[-4:]) # 要取到最後一個,直接不寫左邊的參數便可
同理,要取到第一個值:
names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL'] print(names[:4]) # 也可寫成names[0:4]
二、步長
經過設置步長,能夠實現間隔取值
語法:names[start : end : step]
num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(num[0:7:2]) # 打印索引爲0的元素到索引爲6的元素,步長爲2 print(num[::3]) # 打印所有元素,步長爲3
三、列表反轉
經過把步長設置成負值,可達到列表反轉的效果
num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(num[::-1]) print(num[::-2])
一、排序
a = [34, 43, 65, 23, 12, 5] a.sort() print(a)
可是下面的排序結果該如何解釋呢?
names = ['Kwan', 'Kobe', 'KK', '@', '小明'] names.sort() print(names)
答案全在下面這張表上:
二、反轉
使用reverse()
方法
names = ['Kwan', 'Kobe', 'KK', '@', '小明'] names.reverse() print(names)
names = ['Kwan', 'Kobe', 'KK', '@', '小明'] for i in names: # 也能夠不用i,只要符合變量名規則均可以 print(i)