1. 程式人生 > >小白眼中的Python3.0中對資料型別List的相關操作

小白眼中的Python3.0中對資料型別List的相關操作

PS:本人小白,剛開始自學,先重在使用,再由淺入深,其中有現階段未領悟到的和筆誤,望前輩指出修正 :)

        轉載也請註明出處哦~

因為學完了Python中資料型別List的章節,所以對個別常用相關操作做個彙總,日後再慢慢增加,做個備忘

1. 建立List資料型別操作

    1)使用 list() 函式可以建立一個空連結串列,將其賦值給一個變數即可以方便的對其進行操作和使用

    2)使用 [ ] 也可以建立一個空連結串列,將其賦值給一個變數即可以方便的對其進行操作和使用

>>>listDemo1 = list()
>>>print (listDemo1)
>>>[]
>>>
>>>listDemo2 = []
>>>print (listDemo2)
>>>[]
>>>

2.向List中新增元素

  1)直接建立的時候向list賦值:

>>>listDemo3 = [1, 2, 3, 4, 5, 6]
>>>print (listDemo3)
>>>[1, 2, 3, 4, 5, 6]
>>>
>>>listDemo4 = [1, 'a', 3.4, [5, 6]]
>>>print (listDemo4)
>>>[1, 'a', 3.4, [5, 6]]
>>>

  2)使用append()向list新增元素(PS:append是向連結串列中新增元素,就算是新增連結串列也是作為原連結串列的元素,如下圖所示)

>>>listDemo1.append(1)
>>>print (listDemo1)
>>>[1]
>>>
>>>listDemo1.append([1, 2, 3])
>>>print (listDemo1)
>>>[1, [1, 2, 3]]
>>>

 3)使用extend()向list新增元素(書上說是擴充套件,這邊只是為了好歸納這樣寫,不必糾結字面意思,真正瞭解新增後是什麼樣的存        在才是核心)

>>>test1 = [1, 2, 3]
>>>test2 = [4, 5, 6]
>>>test1.extend(test2)
>>>print (test1)
>>>[1, 2, 3, 4, 5, 6]
>>>

3. 刪除List中的元素

   1)使用pop(i)函式刪除List中的元素(使用下標刪除)

         PS:該函式返回被刪除的位於List[i]的值(i從0開始), 預設引數為-1,所以如果不提供引數將會刪除List最後一個元素

>>>print (listDemo1)
>>>[1, [1, 2, 3]]
>>>listDemo1.pop()
>>>[1, 2, 3]
>>>print (listDemo1)
>>>[1]
>>>
>>>print (listDemo3)
>>>[1, 2, 3, 4, 5, 6]
>>>listDemo3.pop(0)
>>>1
>>>print (listDemo3)
>>>[2, 3, 4, 5, 6]
>>>

   2)使用del 刪除list中的值(不返回刪除的值,使用下標刪除)

>>>print (listDemo3)
>>>[2, 3, 4, 5, 6]
>>>
>>>del listDemo3[1]
>>>
>>>print (listDemo3)
>>>[2, 4, 5, 6]
>>>
>>>del listDemo[1:3]  #不明白這個下標的意思可以接著往下面對List的操作,該操作實現了刪除多個元素
>>>
>>>print (listDemo3)
>>>[2, 6]
>>>

   3)使用remove(x)對元素進行操作(對值進行操作)

        PS:不返回刪除元素,該函式刪除List中第一個出現的x

>>>listDemo5 = [1, 2, 3, 3, 4, 5]
>>>print (listDemo5)
>>>[1, 2, 3, 3, 4, 5]
>>>
>>>listDemo5.remove(3)
>>>
>>>print (listDemo5)
>>>[1, 2, 3, 4, 5]

4. 修改List中的元素

   1)通過下標對List中的元素進行修改

>>>print (listDemo3)
>>>[2, 6]
>>>
>>>listDemo3[1] = 7
>>>
>>>print (listDemo3)
>>>[2, 7]
>>>
>>>listDemo1 = [1, 2, 3, 4, 5, 6]
>>>listDemo1[1:3] = ['x', 'y', 'z']
>>>print (listDemo1)
>>>[1, 'x', 'y', 'z', 4, 5, 6]
>>>
>>>listDemo1[1:3:2] = ['m']
>>>print (listDemo1)
>>>[1, 'm', 'y', 'z', 4, 5, 6]
>>>

5. 排序List中的元素

    1)使用sort()函式對List進行排序

         PS:最好List中元素是同一種類型,預設從小到達進行排序

>>>listDemo1 = [1, 3, 2, 5, 4]
>>>print (listDemo1)
>>>[1, 3, 2, 5, 4]
>>>
>>>listDemo1.sort()
>>>
>>>print (listDemo1)
>>>[1, 2, 3, 4, 5]
>>>

--------該水平線以上對List的操作是會真正改變到List的操作,如下操作不會改變到原有List,至於為什麼以後學到再寫吧 --------

6. 查詢List中的元素

   1)迴圈遍歷連結串列所有元素(當然也可以直接列印單個元素下標的方法)

>>>print (listDemo5)
>>>[1, 2, 3, 4, 5]
>>>
>>>for val in listDemo5:
       print (val, end = ' ')  #print函式預設會自己換行,這樣只是不讓他換行而已,重點在輸出內容         
>>>1 2 3 4 5 
>>>
>>>for i in range(len(listDemo5))  #i = [ 0, len(listDemo5) )
       print (listDemo5[i], end = ' ')
>>>1 2 3 4 5
>>>

 2)其他相關查詢操作可以參考文章中對bisect模組的說明

7. 對List的其他相關操作

   1)List間的 + 和 * 操作( * 操作可以看作是好幾個 + 操作)

         PS:按照自己練習的情況來看能用append()函式操作和+操作達到同樣效果的時候,儘量使用append()函式,大批量操作的             時候尤其明顯(書上是說+是建立一個新的連結串列,append是新增,可能也就是因為這個原因)

>>>listDemo1 = [1, 2, 3]
>>>listDemo2 = ['a', 'b', 'c']
>>>listDemo3 = listDemo1 + listDemo2
>>>print(listDemo3)
>>>[1, 2, 3, 'a', 'b', 'c']
>>>
>>>[1, 2] * 3            #可以看成[1, 2] + [1, 2] + [1, 2]
>>>[1, 2, 1, 2, 1, 2]
>>>

   2)List的切片相關操作(就是你在之前幾個操作中看不懂的那個符號:))

         先簡單歸納一下,再看具體操作結果:          List(a:b:c): a代表起始位置(省略代表從頭開始),b代表結束位置(省略代表到List結尾)(一般操作的時候會包含起始位           置,不包含結束位置,具體理解可以結合實際操作), c表示步長即從a到b每個c-1個單位算一個元素(省略代表步長為               1)(具體理解看操作結果) 

>>>listDemo = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>listDemo[1:5]
>>>[1, 2, 3, 4]
>>>
>>>listDemo[1:5:2]
>>>[1, 3]
>>>
>>>listDemo[ : 5]
>>>[0, 1, 2, 3, 4]
>>>
>>>listDemo[ :5:2]
>>>[0, 2, 4]
>>>
>>>listDemo[5: ]
>>>[5, 6, 7, 8, 9]
>>>
>>>listDemo[5::2]
>>>[5, 7, 9]
>>>
>>>listDemo[:]
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>

   3)對List使用SUM()函式對元素進行求和(PS:最好都是數字)

>>>print (listDemo5)
>>>[1, 2, 3, 4, 5]
>>>
>>>sum(listDemo5)
>>>15
>>>

   4)部分字串和列表之間的相互轉換

#字串轉換成列表

>>>strDemo = "exchange"
>>>listDemo = list(strDemo)
>>>print (listDemo)
>>>['e', 'x', 'c', 'h', 'a', 'n', 'g', 'e']
>>>
>>>'1,2,3'.split(',')
>>>['1', '2', '3']
>>>
>>>'1,2,,3,'.split(',')
>>>['1', '2', '', '3', '']
>>>
>>> '   1   2   3   '.split()
>>>['1', '2', '3']
>>>

#列表轉換成字串
>>>listDemo = ['a', 'b', 'c', 'h'] 
>>>delimiter = '+'
>>>delimiter.join(listDemo) 
>>>'a+b+c+h'
>>>

8. List的其他相關注意事項

    1) 話不多說直接程式碼更直觀,應該都能理解吧

#is 指的是兩個變數是否是指向同一片記憶體空間,如果是指向同一片記憶體空間,那一個被改變了另一個肯定也會跟著被改變
>>>str1 = "abcdef"
>>>str2 = "abcdef"
>>>str1 is str2 
>>>True
>>>
>>>list1 = ['1', '2', '3']
>>>list2 = ['1', '2', '3']
>>>list1 is list2
>>>False
>>>
>>>list3 = ['1', '2', '3']
>>>list4 = list3
>>>list4 is list3
>>>True
>>>