国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python內置數據類型之列表操作

2020-01-04 14:05:30
字體:
來源:轉載
供稿:網友

數據類型是一種值的集合以及定義在這種值上的一組操作。一切語言的基礎都是數據結構,所以打好基礎對于后面的學習會有百利而無一害的作用。

  python內置的常用數據類型有:數字、字符串、Bytes、列表、元組、字典、集合、布爾等

1.什么是列表

lst[#] 通過下標訪問,從0開始。 
ps:如果#超過下標的范圍時候會出現IndexError的錯誤。 
如果#為負號,則索引從右邊開始,#無論為正負均有范圍,超過范圍會報錯。
lst = list(range(0,9)) #生產列表
l1 = lst[3] #通過正索引訪問元素
l2 = lst[-1] #通過負索引訪問元素
print(l1)
print(l2)
#說明,如果正負索引超界,則會報錯。
#錯誤代碼:IndexError: list index out of range

2 .列表元素查找

查找元素:L.index( value,[start[stop]])方法:返回查找到的第一個value值的索引。

start表示從第幾個索引開始,stop表示到哪個索引結束,均可省略。

b.但是如果出現stop,其前必須有start值,索引時包含start位置不包含stop位置。

c.如果匹配不到元素,則返回:ValueError: xx is not in list

d.index查找元素的時間復雜的為O(n)

lst = list(range(11,19)) print(lst)[11, 12, 13, 14, 15, 16, 17, 18]lst.index(13) #13的索引值為2

統計元素:L.count(value) 統計列表中出現多少個value值。

len(L),求list列表的長度。

count方法的時間復雜的為O(n)

3 .列表元素操作

a.修改元素

直接賦值,L[#]=value。

#為列表的索引值

索引不能越界,會報錯IndexError: list assignment index out of range

修改列表自身

lst = list(range(1,10)) lst[2]=111 lst[4]=123lst[1, 2, 111, 4, 123, 6, 7, 8, 9]

b.增加元素

L.append(#),修改L本身,并且追加在列表末尾。

L.extend([#1,#2,#3]) , 將可迭代對象擴展到列表末尾。

L+[‘a','b','c'] ,不修改列表本身,返回一個新的列表。

c.插入元素

L.insert(idx,#),將在該idx前插入#,會修改L本身。

當idx為正數,且大于列表本身的索引數,

會實現append方法將插入在元素最末尾;當idx為負數,且小于-len(L)+1時將會插入到列表最前。

append的時間復雜度是O(1),效率和數據的規模無關。

insert的時間復雜度是O(n),效率個數據規模正相關。

d.移除元素

L.remove(value),修改自身,從左到右刪除第一個匹配到的值。

L.pop(idx),返回并刪除索引指向的值。如果不指定idx,將刪除列表最后的元素。

pop不指定值時,時間復雜度是O(1)的;

pop指定idx時,時間復雜度是O(n)的。

L.clear(),刪除索引元素。慎用,會引起垃圾回收。

e.列表反轉

reverse(),修改自身,反轉列表元素。

f.列表排序

L.sort(),排序操作,修改自身,升序排列。 L.sort(reverse=True),逆序排列。

4 .列表進階

1. 列表復制

copy()方法,列表淺拷貝。遇到引用類型,僅僅復制引用地址。當原來引用類型的值發生變化時,拷貝后的列表的值也隨之發生變化。

lst = list(range(4))lst1 = lst.copy()print(lst1)#淺拷貝特性說明lst = [1,[2,3,4],5]lst1 = lst.copy()lst1[1][2] = 11lst[1][0]=22print(lst)print(lst1)#lst = lst1,引用內的值改變,列表均發生變化。[0, 1, 2, 3][1, [22, 3, 11], 5][1, [22, 3, 11], 5]

copy模塊下的deepcopy() 提供了深拷貝方法。

import copylst = [1,[2,3,4],5]lst1 = copy.deepcopy(lst)lst1[1][2] = 11print(lst)print(lst1)#lst != lst1 對比lst.copy方法。[1, [2, 3, 4], 5][1, [2, 3, 11], 5]

2. 打亂列表

需要引入random模塊

# random.shuffle(list)lst = [1,323,4,-3,[1,3],None,(1,34),{1:3}]random.shuffle(lst) #修改自身,返回值為None,不能使用其他空間接受。lst #通過shuffle打亂后列表的順序發生變化。[323, {1: 3}, None, [1, 3], 1, -3, 4, (1, 34)]

random模塊的其他對象:

import randomprint(random.randint(1,11)) #返回[1,11] 之間的整數,注意左右閉區間print(random.choice(range(11))) #從非空序列中隨機挑選一個整數#randrange ([start,] stop [,step]) 從指定的范圍內,按指定基數遞增的集合中獲取一個隨機數random.randrange(1,7,2) #從[1,7)中,步長為2的數字中獲取一個數

總結

以上所述是小編給大家介紹的python內置數據類型之列表,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 侯马市| 龙口市| 巩留县| 宣化县| 塔河县| 漾濞| 林周县| 合川市| 镇康县| 达日县| 江口县| 灵石县| 高安市| 阿城市| 苏尼特右旗| 红安县| 专栏| 北辰区| 台北县| 新宾| 泽普县| 阿克苏市| 广元市| 清原| 延吉市| 博湖县| 古蔺县| 沾益县| 密云县| 衡南县| 湟中县| 宁城县| 新平| 侯马市| 宁武县| 喀什市| 江源县| 巴东县| 湟中县| 宜都市| 科技|