python中list方法與函式的學習總結

ckxllf發表於2021-03-15

  前言

  list資料型別是python中的重要的資料型別,因為其的可操作性,日後在許多方面都要用到,這裡進行list中的方法與函式的回顧。

  一、列表的函式

  python中列表的函式共有四個,分別是len() , max() , min() , list()

  1.len(list)

  len()函式是統計列表中有多少元素

  例:

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

  >>> len(a)

  5

  但是,有一點要特別說明,len()統計的是元素的個數,不是數字的個數;有巢狀時,深度套娃也只算是一個元素

  下面這個例子非常有代表性

  >>> list = ["1","2",["3","4"],["5"],[6,5,[44,23423]]]

  >>> len(list)

  5

  2.max(list)與min(list)

  max 與 min 函式返回list中的最大值與最小值

  當用 max() 函式當比較容器型別中的列表或者元組資料型別時,當其中的元素全部為數字型別時,直接根據值的大小比較。當其中的元素全部為字串型別(string)時,則比較的是每個字串元素的第一個字元的 ASCII 的大小。如果列表或者元組中的元素為數字型別和字串型別混雜時,則無法比較。–該段來自菜鳥教程max()模組中的筆記

  3.list()

  list()函式可以將其他的資料型別轉化成list型別,用法比較活,可以自行試驗

  二、列表的方法

  1.新增新的元素

  (1).list.append()

  在末尾新增新的元素

  注:這裡新增的是單個元素,假設說你想將一次把一個列表新增到另一個列表中而不形成列表的巢狀,就不能使用append。

  >>> a = [i for i in range(5)]

  >>> a

  [0, 1, 2, 3, 4]

  >>> a.append([i for i in range(5)])

  >>> a

  [0, 1, 2, 3, 4, [0, 1, 2, 3, 4]]

  還有一點

  append() 是淺複製,如果在 append 一個物件時,需要特別注意:

  >>>alist = []

  >>> num = [2]

  >>> alist.append( num )

  >>> id( num ) == id( alist[0] )

  True

  如果使用 num[0]=3,改變 num 後,alist[0] 也隨之改變。

  如不希望,需要使用 alist.append( copy.deepcopy( num ) )—該段來自菜鳥教程append中的筆記

  (2).list.extend()

  extend可以將多個元素新增到列表中,但是要注意,extend傳入的引數的資料型別是列表,元組,字典(將key依次從末尾傳入list),集合

  >>> a = [i for i in range(5)]

  >>> a

  [0, 1, 2, 3, 4]

  >>> b = [i for i in range(5,9)]

  >>> b

  [5, 6, 7, 8]

  >>> a.extend(b)

  >>> a

  [0, 1, 2, 3, 4, 5, 6, 7, 8]

  不能是數字和字串

  >>> a.extend(1)

  Traceback (most recent call last):

  File "", line 1, in

  a.extend(1)

  TypeError: 'int' object is not iterable

  (3).list.insert(index, obj)

  【補充】

  這裡用到了index–也就是索引,關於索引

  這裡我簡單介紹一下關於這裡要用到的索引知識,更深入的請自行查詢。(有基礎的同學可以自行跳過這段)

  索引是一個漢語詞語,讀音為suǒ yǐn。一指檢尋圖書資料的一種工具,將書刊中的內容或專案分類摘錄,標明頁數,按一定次序排列,附在一書之後或之前,或單獨編印成冊,以便讀者查閱,舊稱通檢或備檢;—來自百度百科

  正如上文說說,索引是一種檢索工具,在python中索引是為了能從list,tuple以及array等中取出資料。

  1.在python中,為了能取到值,每個元素都會有個下標,這個標是從0依次開始,

  也就是說下標為“0”的元素在我們認知中是第1個

      下標為“1”的元素是第2個

  依次排列

  2.上面的一是從前往後排的,那麼從後往前排呢?

  這裡python的規定是最後一個是-1

      倒數第二個是-2

  依次排列

  3.那麼如何取值呢?

  見下面的程式碼

  >>> a = [i for i in range(10)]

  >>> a

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  >>> a[0]

  0

  >>> a[1]

  1

  >>> a[2]

  2

  注:關於索引,還有其他操作,但在這裡只用到這一點點知識,我就不過多贅述了。

  回到正題,list.insert()是透過索引來新增值

  見下面的程式碼

  >>> a

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  >>> a.insert(1,"我")

  >>> a

  [0, '我', 1, 2, 3, 4, 5, 6, 7, 8, 9]

  在這裡還要說明一點,這裡的insert中的索引是我理解為是插入後該元素的索引值,如果不對還請大佬在評論指正,謝謝。

  2.刪除元素

  (1).刪除指定的元素

  (1).list.pop()

  這個可以刪除list的最後一個元素

  注:在pop傳入的引數為index

  預設引數為index=-1

  如果想刪除其他的可以向其中傳入引數

  這裡再說明一點,使用pop刪除會有返回值的,如果需要使用這個值,可以用變數來接收一下返回值

  >>> a 大連人流哪家好

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  >>> a.pop(1)

  1

  (2).list.remove()

  remove中要傳入引數,這個引數是要刪除的的元素,如果list中擁有兩個一樣的元素,優先刪除第一齣現的元素(即從前往後找)

  >>> b = [1,2,3,4,5,6,7,1]

  >>> b.remove(1)

  >>> b

  [2, 3, 4, 5, 6, 7, 1]

  (3)del list[]

  這個是一個關鍵字,因為功能一樣就放在這裡講

  del list[]使用也是依靠索引,可以參見pop條

  (2).清空list

  (1).del list

  (2).list.clear()

  這個沒啥好說的,就是清空嘛

  3.對list進行統計與排序

  (1).list.count()

  對list中某元素出現的次數進行統計

  >>> b

  [1, 2, 3, 4, 5, 6, 7, 1]

  >>> b.count(1)

  2

  (2).list.sort()與list.reverse()

  list.reverse()對list進行倒序排列

  注:這裡的倒序排列是將現在的list反過來,不會進行大小的排序

  list.sort()用來進行排序,分為升序和降序

  注:sort()預設是升序

  如果想要降序,需要傳入reverse = True

  >>> a = [33425,3446,342,534,5674,45,23,534,52,342,34,235,346,34]

  >>> a.sort()

  >>> a

  [23, 34, 34, 45, 52, 235, 342, 342, 346, 534, 534, 3446, 5674, 33425]

  >>> a.sort(reverse = True)

  >>> a

  [33425, 5674, 3446, 534, 534, 346, 342, 342, 235, 52, 45, 34, 34, 23]

  sort 還可以指定key來排序

  # 列表

  random = [(2, 2), (3, 4), (4, 1), (1, 3)]

  # 指定第二個元素排序

  random.sort(key=takeSecond)

  # 輸出類別

  print ('排序列表:', random)

  排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2762968/,如需轉載,請註明出處,否則將追究法律責任。

相關文章