1.python 數(shù)據(jù)結(jié)構(gòu)-----列表

列表

關(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  
 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容