- Python編程基礎與數據分析
- 王娟 華東 羅建平
- 1276字
- 2020-09-11 16:42:32
3.4 列表
列表是Python中最常用的數據類型之一。列表不同于元組和字符串,它是可變的,可以直接改變列表的元素內容。
3.4.1 基本操作
通過賦值語句即可創建一個列表類型的序列。如:
>>> L = [ ] ##創建一個空列表L
>>> L = [1, 2, 3] ##創建一個包含元素1, 2, 3的列表L
>>> type (L) ##查看L的類型
<class 'list'>
通過del語句即可刪除列表對象或列表的元素。如對上例進行如下操作:
>>> del L [1] >>> L [1, 3] >>> del L >>> L Traceback (most recent call last) : File "<pyshell#89>", line 1, in <module> L NameError: name 'L' is not defined
可以看出del語句不僅可以刪除整個列表對象,還可以刪除列表的元素。
列表是可變類型,因此可以直接修改其元素,可以通過賦值語句直接修改。例:
>>> L = [11, 22, 33, 44, 55] >>> L [2] = 0 >>> L [11, 22, 0, 44, 55] >>> L [1:3] = [2] >>> L [11, 2, 44, 55]
3.4.2 常用函數及方法
1.轉換函數list
字符串和元組屬于不可改變類型,所以經常需將它們轉換為可變類型列表來進行修改,通過list函數,可以獲取將其他序列類型轉換為列表類型的結果列表,源序列內容不變。格式為:
list (seq)
其中,seq為字符串或元組類型。通過該函數,可以獲取將seq轉換為列表類型的結果列表。如:
>>> s = "hello"
>>> list (s)
['h', 'e', 'l', 'l', 'o']
>>> s
'hello' >>> t = (10, 20, 30) >>> list (t) [10, 20, 30] >>> t (10, 20, 30)
從上面例子中可以看出,list函數本身返回轉換后的列表,但源序列的類型及內容均保持不變。
2.生成序列函數range
通過list和range函數可以生成一個數值序列。range函數的格式為:
range (start, stop [, step] )
其中,start表示產生的序列元素范圍的起始值,stop表示產生的序列元素范圍的終止值(不包括該值),step表示產生的序列元素范圍的步長值,即增量。例:
>>>list (range (10) ) ##產生 [0, 9] 之間的整型數值構成的序列 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list (range (10, 20) ) ##產生 [10, 19] 之間的整型數值構成的序列 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> list (range (1, 20, 3) ) ##產生3n+1數值構成的序列, 其中n為整數且 1≤3n+1<20 [1, 4, 7, 10, 13, 16, 19]
3.追加元素方法append
通過append方法可以在列表末尾追加新元素。格式為:
list.append (object)
其中,list為源列表,object為待添加至列表末尾的新元素。例:
>>> L = [1, 2, 3] >>> L.append (4) >>> L [1, 2, 3, 4] >>> L.append ( [1, 2] ) >>> L [1, 2, 3, 4, [1, 2] ]
4.插入元素方法insert
通過insert方法可以將元素插入在列表的指定位置。格式為:
list.insert (index, object)
其中,list為源列表,index指定插入的下標位置,object為待插入列表的新元素。例:
>>> L = [10, 20, 30, 40]
>>> L.insert (1, 15)
>>> L
[10, 15, 20, 30, 40]
該例在列表L的下標為1的位置插入15。該操作也可以通過切片賦值來完成。如:
>>> L = [10, 20, 30, 40]
>>> L [1:1] = [15]
>>> L
[10, 15, 20, 30, 40]
5.根據元素位置移除元素方法pop
通過pop方法可以移除列表中的某元素,并返回該元素的值。格式為:
list.pop ( [index] )
其中,list為源列表,index為待移除元素的下標,該參數可以缺省,默認為移除最后一個元素。例:
>>> L = [12, 23, 34, 45] >>> L.pop ( ) 45 >>> L [12, 23, 34] >>> L.pop (0) 12 >>> L [23, 34]
該函數方法與append方法互為逆操作。
6.根據元素值移除元素方法remove
通過remove方法可以根據元素值來移除對應元素,但一次只能刪除一個元素。格式為:
list1.remove (value)
其中,list為源列表,value為待移除元素的值。調用該方法一次只能刪除一個值為value的元素。例:
>>> L = [1, 2, 3, 2, 1] >>> L.remove (2) >>> L [1, 3, 2, 1] >>> L.remove (2) >>> L [1, 3, 1]
7.反向方法reverse
通過reverse方法可以將列表元素逆序。格式為:
list.reverse ( )
其中,list為源列表。該方法可以將列表改變為元素順序跟原列表元素順序相反的列表。例:
>>> L = [12, 23, 34, 45]
>>> L.reverse ( )
>>> L
[45, 34, 23, 12]
8.其他函數及方法
數值列表經常要進行獲取其元素和、最大值或進行排序操作,獲取元素和sum函數、最大值max函數、排序sorted函數、排序方法sort的使用可參見3.2.7小節。