Python從入門到上癮08 列表的高階操作

2021-09-24 11:36:19 字數 2732 閱讀 3585

小白高效學習python系列,50小時學會python 「 閱讀本文需要大約7分鐘。」

列表(list)是python語言中一類重要資料型別。上一期講解了《列表的基本操作》,本期主要說明列表的一些高階操作的用法。

如果你已經忘了列表的基本含義,可以參見上一期內容《列表的基本操作》。

初學者乍一看,覺得很奇怪,列表不就是類似於c語言中的陣列麼。怎麼還會有「+」與「*」操作。其實,你看過下面一段**,你就明白了。

list1 = [1,3,5]

list2 = [2,4,6]

print(list1+list2) # 執行結果為:[1, 3, 5, 2, 4, 6]

print(list1) #list1仍為[1, 3, 5]

可以看到,列表的」+「運算,實際上就是在原有列表上拼接新的列表。

需要注意的是,在python中,有另外乙個函式extend()的作用與此類似,都是在原有列表尾部拼接新的列表。

list1 = [1,3,5]

list2 = [2,4,6]

list1.extend(list2)

print(list1) # 執行結果為:[1, 3, 5, 2, 4, 6]

注意,但是list1利用extend()進行拼接以後,發生變化。而使用」+「拼接,原有列表未發生變化。

列表的」「運算列表的」「運算,實際就是對原有列表按倍數進行重複,看下面一段**。

list1 = ['good']

print(list1*3) #執行結果為:['good', 'good', 'good']

切片這一概念我們在字串那一章節已經接觸過,參見《整型、字串資料型別》。實際上,在python中所有有序序列都支援切片(slice),如列表,字串,元組等。

切片格式如下:

格式:【start: end: step】,其中 start:起始索引,從0開始,-1表示結束;end:結束索引;step:步長,步長為正時,從左向右取值。步長為負時,反向取值。看如下**

a=[1,2,3,4,5,6]

b1=a[:] #省略全部,代表擷取全部內容,可以用來將乙個列表拷給另乙個列表

print(b1) # 結果:[1, 2, 3, 4, 5, 6]

​b=a[0:-1:1] #從位置0開始到結束,每次增加1,擷取。不包含結束索引位置

print(b) # 結果:[1, 2, 3, 4, 5]

​c1=a[:3] #省略起始位置的索引,以及步長。預設起始位置從頭開始,預設步長為1,結束位置索引為3

print(c1) # 結果:[1, 2, 3]

​c=a[0:5:3] #從第乙個位置到第6位置,每3個取乙個值

print(c) # 結果:[1, 4]

​d=a[5:0:-1] #反向取值

print(d) # 結果:[6, 5, 4, 3, 2]

​d1=a[::-1] # 逆序

print(d1) # 結果:[6, 5, 4, 3, 2, 1]

需要注意的是,切片的結果不包含結束索引,即不包含最後的一位,-1代表列表的最後乙個位置索引。

當需要對列表中的元素進行排序的時候,可以使用list.sort([func]),其中[func]為可選引數。如果列表中的元素為字串,則根據字母排序決定大小。看下面**。

list1 = ['z','a','b']

list1.sort()

print(list1) # 結果:['a', 'b', 'z']

list1.sort(reverse= true) #逆序排序

print(list1) # 結果['z', 'b', 'a']

注意到,排序後原列表元素永久改變了;如果只是希望暫時排序列表,而原列表元素不受影響可以使用sorted( )函式。看下面**。

list1 = ['z','a','b']

print(sorted(list1)) # 結果:['a', 'b', 'z']

print(list1) # 結果['z', 'b', 'a']

list1,list2 = ['z','a','b'],[4,3,1,7]

print(min(list1)) # 執行結果為:a

print(max(list2)) # 執行結果為:7

list1 = [1,3,5,5,5]

print(list1.count(5)) #輸出結果:3

list1 = [1,3,5,5,5]

print(list1.index(3)) #輸出結果:1

list1 = ['z','a','b']

list1.reverse()

print(list1) # 輸出結果:['b', 'a', 'z']

list1 = ['z','a','b']

print(len(list1)) # 輸出結果:3

Python從入門到上癮07 列表的基本操作

小白高效學習python系列,50小時學會python 閱讀本文需要大約6分鐘。列表 list 是python語言中一類重要資料型別。學習本文後將對列表的基本概念以及基本操作有乙個清晰的認識!list1 1,2,3,4,5 list2 motherboard python list 2019,190...

NEON指令集優化從入門到上手業務

arm neon全稱單指令多資料協處理器 single instruction,multiple data 其核心是有兩類儲存資料的暫存器組成 2 組合語言 x t資料型別 含義uint8x8 t 包含8個uint8的向量型別 uint8x8x2 t 包含2個向量的陣列型別,每個向量包含8個uint...

Python從入門到實踐 學習筆記(二)列表

訪問 1 索引從0開始 索引指定為 1 可讓python返回最後乙個列表元素。這種約定也適用於其他負數索引,例如,索引 2 返回倒數第二個列表元素,索引 3 返回倒數第三個列表元素,以此類推。2 查詢python列表中元素的位置 newlist.index object 返回 元素第一次出現的位置 ...