python中list方法與函式的學習總結
前言
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python函式與方法的區別總結Python函式
- Python---python函式學習總結Python函式
- Oracle 中 Over() 函式學習總結Oracle函式
- python學習總結之 函式定義defPython函式
- oracle 與 mysql 中的函式總結OracleMySql函式
- 學習Scala 方法與函式函式
- PHP 學習總結之函式PHP函式
- c++函式學習總結C++函式
- python 中 print 函式用法總結Python函式
- Python | Python常用函式、方法示例總結(API)Python函式API
- tensorflow相關函式學習總結函式
- C++虛擬函式學習總結C++函式
- JavaScript學習總結(四)function函式部分JavaScriptFunction函式
- 廖雪峰JS學習總結-函式篇JS函式
- C++中list的使用方法及常用list操作總結C++
- 前端學習之PHP基礎函式總結前端PHP函式
- spark中的聚合函式總結Spark函式
- JS 中的函式 this 指向總結JS函式
- python學習方法總結(內附python全套學習資料)Python
- Python函式引數總結Python函式
- sqlldr的學習與總結SQL
- 04 | 函式與優化方法:模型的自我學習(上)函式優化模型
- python學習總結Python
- PHP中的list()函式入門PHP函式
- Python學習之函式Python函式
- 小甲魚python學習總結之函式——lambda fillter() map() 閉包 遞迴Python函式遞迴
- C++中的函式指標和函式物件總結C++函式指標物件
- 個人python與dl學習常見常用函式Python函式
- python中list列表的高階應用 高階函式Python函式
- Python 中級學習之函式裝飾器Python函式
- 【總結】Python常用函式有哪些?Python函式
- python常用函式年初大總結Python函式
- Python中,類的特殊方法與內建函式的關聯Python函式
- wcf學習總結《中》
- python學習命令總結Python
- Python NumPy學習總結Python
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式
- Python學習之zip函式Python函式