列表
關(guān)鍵特性:
1.是可變的數(shù)據(jù)類型(可進(jìn)行增刪改查)
2.可以存放不同數(shù)據(jù)類型
3.是有序的,可以索引的
- 列表常見的用法:
- 創(chuàng)建一個列表
# 創(chuàng)建一個空列表,等效 less1 = list() 列表是有序的,可以索引
less1 = []
# 創(chuàng)建一個不同數(shù)據(jù)類型的列表
less2 = ['m', 1, ['b', 5], 2.0, ('c', 2), {'name': 'admin'}]
- 增加
# 把一個元素添加到列表的結(jié)尾:append(self, object)
less3 = [1,2,'a','b']
less3.append('c') #得到 ['1', '2', 'a', 'b', 'c']
# 通過添加指定列表的所有元素來擴(kuò)充列表:extend(self, iterable) terable(可迭代的,迭代器)
less3 = [1,2,'a','b']
less3.extend([4,5,6]) #得到 [1, 2, 'a', 'b', 4, 5, 6]
# 在指定位置插入一個元素,index是要插入位置的索引,object是要插入的元素:insert(index, object)
less3 = [1,2,'a','b']
less3.insert(3,'D') #得到 [1, 2, 'a', 'D', 'b']
- 刪除
# 從列表中刪除值為x的第一個元素,若沒有,則返回一個錯誤: remove(x)
less3 = [1,2,'a',1,'b']
less3.remove(1) # 得到[2,'a',1,'b']
# 從列表中的索引或切片刪除: del
less3 = [1,2,'a',1,'b']
del less3[2] #得到 [1, 2, 1, 'b']
# 切片刪除
less3 = [1,2,'a',1,'b']
del less3[0:2] #得到 ['a', 1, 'b']
# 從列表中刪除index指定的索引的值,并將其返回: pop(index=None)
less3 = [1,2,'a',1,'b']
less3.pop(2) #得到 [1, 2, 1, 'b']
# 若沒有指定索引,默認(rèn)刪除最后一個元素,并將其返回
less3 = [1,2,'a',1,'b']
less3.pop() #得到 [1, 2, 'a', 1]
# 清空了列表
less3 = [1,2,'a',1,'b']
less3[:] = []
- 修改
# 對指定索引進(jìn)行賦值操作,對一個元素
less3 = [1,2,'a',1,'b']
less3[1] = 'ab' #得到 [1, 'ab', 'a', 1, 'b']
# 對一段元素
less3 = [1,2,'a',1,'b']
less3[0:2] = [7,8,'ede','dede'] #得到 [7, 8, 'ede', 'dede', 'a', 1, 'b']
- 其他操作
# 跟索引取值
less3 = [1,2,'a',1,'b']
less3[0] #得到1
less3[-1] #得到 b
# 返回索引
# 返回列表中第一個值為 x 的元素的索引,不存在就返回錯誤. 可指定開始點和結(jié)束點的索引,范圍前開后閉:index( x, start=None, stop=None)
less3 = [1,2,'a',1,'b']
less3.index(1) #得到 0
less3.index(2) #得到 1
less3.index('a') #得到2
注:除 index()、count() 外,其余的方法都是對列表本身進(jìn)行修改,操作過后,列表會改變
常見操作:
統(tǒng)計一個元素的出現(xiàn)次數(shù):count(x)
less3 = [1,2,'a',1,'b']
less3.count(1) #得到 2
切片
#列表切片前后原列表不變,切出來的分片是重新開辟一塊內(nèi)存的列
less3 = [1,2,'a',1,'b']
less3[0:2] #返回[1, 2], 取區(qū)間[i,j) ,左閉右開
less3[:2] #返回[1, 2],可省略第一位
less3[2:] #返回['a', 1, 'b']
less3[2:-1] #返回 ['a', 1]
less3[:] #返回 [1, 2, 'a', 1, 'b'] 相當(dāng)于復(fù)制一份
less3[::2] #返回 [1, 'a', 'b'] 步長為2
less3[:4:2] #返回 [1, 'a']
排序
#對列表中的元素進(jìn)行排序,默認(rèn)從小到大,不能比較不同類型數(shù)據(jù),key指定以...排序,reverse=True 表示逆序(從大到小):sort(key=None, reverse=False)
less4= [3,2,7,5,1,4,9,0,23,13]
less4.sort()#得到 [0, 1, 2, 3, 4, 5, 7, 9, 13, 23]
列表的復(fù)制,等于lis[:]
less3 = [1,2,'a',1,'b']
less4 = less3[:]
遍歷列表
less3 = [1,2,'a',1,'b']
for i in less3:
print i
計算列表長度
less3 = [1,2,'a',1,'b']
len(less3) #得到 5
列表的比較
#對應(yīng)索引的元素一一對應(yīng)比較
#從第一個元素開始比較(索引為0),只要有一個元素大,后面就不用再比較。類似字符串的比較,但字符串比較多是Asscii碼
less3 = [1,2,'a',1,'b']
less4 = [3,2,7,5,1,4,9,0,23,13]
less3>less4 #得到 False
less3<less4 #得到 True
判斷元素是否在列表內(nèi) in 、not in
less3 = [1,2,'a',1,'b']
1 in less3 #得到 True
0 not in less3 #得到 True