官术网_书友最值得收藏!

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小節。

主站蜘蛛池模板: 隆回县| 巴林左旗| 龙山县| 东平县| 应用必备| 新宁县| 涟源市| 平谷区| 满城县| 高阳县| 江城| 兴山县| 昌都县| 马龙县| 特克斯县| 扎兰屯市| 康平县| 黄大仙区| 纳雍县| 新乡市| 通化市| 腾冲县| 望城县| 东辽县| 承德县| 志丹县| 饶阳县| 昭平县| 朝阳县| 凤翔县| 家居| 威信县| 卓资县| 千阳县| 游戏| 寿宁县| 保山市| 措勤县| 康保县| 盘山县| 林州市|