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

3.1 列表的基本操作

列表對象屬于序數對象,是一群有序對象的集合,并且可以使用數字來做索引。列表對象可以做新增、修改和刪除的操作。

3.1.1 列表對象的特性

列表由一系列按特定順序排列的元素組成。在Python中,用方括號[]來表示列表,用逗號來分割其中的元素。例如:

    >>>aa=["泠泠七弦上,","靜聽松風寒。","古調雖自愛,","今人多不彈。"]
    >>>print(aa)

運行結果如圖3-1所示。

圖3-1 運行結果

從結果可以看出,Python不僅輸出列表的內容,還包括方括號。

列表的常見特性如下:

(1)列表對象中的元素可以是不同的類型,例如:

    >>>aa=[12,"何當共剪西窗燭",1.66,5+3j]

(2)列表對象中的元素可以是另一個列表,例如:

    >>>aa = [12,"何當共剪西窗燭",1.66,["一夕輕雷落萬絲","霽光浮瓦碧參差",3.66]]

(3)訪問列表中對象的方法比較簡單,列表中的序號是從0開始的。例如,訪問下面列表中的第4個元素。

    >>>aa =[12,"何當共剪西窗燭",1.66,["一夕輕雷落萬絲","霽光浮瓦碧參差",3.66]]
    >>>aa[3]

運行結果如圖3-2所示。

圖3-2 運行結果

(4)列表是可以嵌套的,如果要讀取列表對象中嵌套的另一個列表,可使用另一個中括號[]來做索引。例如:

    >>> aa =[12,"何當共剪西窗燭",1.66,["一夕輕雷落萬絲","霽光浮瓦碧參差",3.66]]
    >>> aa[3][1]

運行結果如圖3-3所示。

圖3-3 運行結果

提示 in運算符用于判斷一個元素是否存在于列表中,例如:

    >>>1 in [1, 2, 3]
    Ture

3.1.2 列表的常見操作

列表創建完成后,還可以對其進行相關的操作。

1. 獲取某個元素的返回值

使用列表對象的index(c)方法(c是元素的內容)來返回該元素的索引值。例如:

    >>> aa =[12,"何當共剪西窗燭",1.66,["一夕輕雷落萬絲","霽光浮瓦碧參差",3.66]]
    >>> aa.index("何當共剪西窗燭")
    >>> aa.index(1.66)

運行結果如圖3-4所示。

圖3-4 運行結果

2. 改變列表對象的元素值

列表中的元素值是可以改變的。例如,修改列表中的第2個元素:

    >>> aa =[12,"何當共剪西窗燭",1.66,["一夕輕雷落萬絲","霽光浮瓦碧參差",3.66]]
    >>> aa[1] = "卻話巴山夜雨時"
    >>> aa

運行結果如圖3-5所示。

圖3-5 運行結果

3. 在列表中插入新元素

例如,在列表的第4個位置插入兩個新元素:

    >>> aa =[12,"何當共剪西窗燭",1.66]
    >>> aa[3:] = ["卻話巴山夜雨時",1.12]  #3:表示從左側數第4個位置開始添加新元素
    >>> aa

運行結果如圖3-6所示。

圖3-6 運行結果

4. 刪除列表中的元素

使用del語句可以刪除列表對象中的元素。

例如,刪除列表中的第3個元素:

    >>> aa =[12,"何當共剪西窗燭",1.66]
    >>> del aa[2]
    >>> aa

運行結果如圖3-7所示。

圖3-7 運行結果

如果想從列表中刪除最后一個元素,可以使用序號-1。例如:

    >>>aa= [100, ['A', 'B', 'C']]
    >>> del aa[-1]  #-1表示從右側數第一個元素
    >>> aa
    [100]

提示 如果想一次清除所有的元素,可以使用del語句操作,命令如下:

    del a[:]

3.1.3 列表的操作符+和*

列表的常用操作符包括+和*。其中,列表對+和*的操作與字符串相似。+號用于組合列表,*號用于重復列表。

+號操作符經常用于字符串和列表元素的組合。例如:

    >>>aa=[1,2,3]+ [4,5,6] + [7,8,9]
    >>>aa

運行結果如圖3-8所示。

圖3-8 運行結果

    >>>aa=["蘋果","葡萄","柚子","桃子","橙子"]
    >>>aa="我最喜歡的水果是"+aa[1]
    >>> print(aa)

運行結果如圖3-9所示。

圖3-9 運行結果

*號運算符經常用于重復列表中的元素。例如,將列表中的元素重復4次:

    >>>aa=[100,200,300,400]*4
    >>>aa

運行結果如圖3-10所示。

圖3-10 運行結果

如何才能創建一個占有10個元素空間而又不包括任何內容的列表呢?

空列表可以簡單地通過中括號([])來表示,如果想創建10個元素空間而又不包括內容的列表,可以使用*號來實現,如[]*10,這樣就生成了一個包含10個空元素的列表。然而,有時候可能需要一個值來代表空值,表示沒有放置任何元素,可以使用None。None是Python的內建值,例如:

    >>>aa=[None]*10
    >>>aa
    [None, None, None, None, None, None, None, None, None, None]

3.1.4 內置的函數和方法

列表對象有許多的內置函數和方法,下面學習這些函數和方法的使用技巧。

1. 列表的函數

列表內置的函數包括len()、max()、min()和list()。

(1)len()函數返回列表的長度。例如:

    >>>aa=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>>len(aa)

運行結果如圖3-11所示。

圖3-11 運行結果

(2)max()函數返回列表元素中的最大值。例如,求取列表中的最大值:

    >>>aa=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>>max(aa)
    >>>bb=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'o', 'p']
    >>>max(bb)

運行結果如圖3-12所示。

圖3-12 運行結果

注意 列表中的元素數據類型必須一致才能使用max()函數,否則會出錯。例如:

    >>>aa=[100, 200, 300, 400, 'qq']
    >>>max(aa)

報錯信息如圖3-13所示。

圖3-13 報錯信息

(3)min()函數返回列表元素中的最小值。例如:

    >>>aa=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>>min(aa)
    >>>bb=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'o', 'p']
    >>>min(bb)

運行結果如圖3-14所示。

圖3-14 運行結果

2. 列表的方法

在Python解釋器內輸入dir([]),就可以顯示這些內置的列表方法。

    >>>dir([])

運行結果如圖3-15所示。

圖3-15 運行結果

下面將挑選常用的方法進行介紹。

(1)append(object)

append()方法在列表對象的結尾,加上新對象object。例如:

    >>>aa= [100,200,300,400]
    >>>aa.append(500)
    >>>aa
    >>>aa.append([600,700])
    >>>aa

運行結果如圖3-16所示。

圖3-16 運行結果

(2)clear()

clear()函數用于清空列表,類似于del a[:]。例如:

    >>>aa =[100,200,300,400,500,600]
    >>>aa.clear()   #清空列表
    >>>aa

運行結果如圖3-17所示。

圖3-17 運行結果

(3)copy()

copy()函數用于復制列表。例如:

    >>>aa = ['蘋果', '香蕉', '柚子', 1.88, 2.66, 3.86]
    >>>bb = aa.copy()
    >>>bb

運行結果如圖3-18所示。

圖3-18 運行結果

(4)count(value)

count(value)方法針對列表對象中的相同元素值value計算其數目。例如,計算出列表值為166的元素個數:

    >>>aa= [100,133,166,188,166,266]
    >>>aa.count(166)

運行結果如圖3-19所示。

圖3-19 運行結果

(5)extend(list)

extend(list)方法將參數list列表對象中的元素加到此列表中,成為此列表的新元素。例如:

    >>>aa= [100, 200, 300, 400]
    >>>aa.extend([500,600,700,800])
    >>>aa

運行結果如圖3-20所示。

圖3-20 運行結果

(6)index(value)

index(value)方法將列表對象中元素值為value的索引值返回。例如:

    >>>aa= [100, 200, 300, 400, 500, 600, 700, 800]
    >>>aa.index(800)

運行結果如圖3-21所示。

圖3-21 運行結果

(7)insert(index, object)

insert(index, object)方法將在列表對象中索引值為index的元素之前插入新元素object。例如:

    >>>aa=[100, 200, 300, 400, 500, 600, 700, 800]
    >>>aa.insert(1,"新元素")
    >>>aa

運行結果如圖3-22所示。

圖3-22 運行結果

(8)pop([index])

pop([index])方法將列表對象中索引值為index的元素刪除。如果沒有指定index的值,就將最后一個元素刪除。例如,刪除第2個元素和刪除最后一個元素:

    >>>aa= [100, 200, 300, [400, 500, 600]]
    >>>aa.pop(1)
    >>>aa
    >>>aa.pop()
    >>>aa

運行結果如圖3-23所示。

圖3-23 運行結果

(9)remove(value)

remove(value)方法將列表對象中元素值為value的刪除。例如,刪除值為300的元素:

    >>>aa= [100, 200, 300, 400]
    >>>aa.remove(300)
    >>>aa

運行結果如圖3-24所示。

圖3-24 運行結果

(10)reverse()

reverse()方法將列表對象中的元素顛倒排列。例如:

    >>>aa=[100, 200, 300, 400]
    >>>aa.reverse()
    >>>aa

運行結果如圖3-25所示。

圖3-25 運行結果

(11)sort()

sort()方法將列表對象中的元素依照大小順序排列。例如:

    >>>aa = [100, 600, 800,400,500,200,300,700]
    >>>aa.sort()
    >>>aa

運行結果如圖3-26所示。

圖3-26 運行結果

3.1.5 遞推式構造列表

從Python 2.0開始,可以使用遞推式構造列表(list comprehension)的功能。所謂遞推式構造列表,是使用列表內的元素創建新的列表。

遞推式構造列表的語法如下所示:

sequence代表序數對象,如字符串、元組、列表等。在列表包容的結果中,新列表的元素數目是所有序數對象的元素數目相乘的結果。

下面的示例將字符串對象aa與列表對象laa做列表包容,創建一個新的列表對象。

    >>>aa= "ab"
    >>>laa= [100,200,300,400]
    >>>bb=[ (x,y) for x in aa for y in laa]
    >>>bb

運行結果如圖3-27所示。

圖3-27 運行結果

aa字符串對象有兩個元素,laa列表對象有4個元素,列表包容產生的新列表有8個元素。

畢達哥拉斯三元數組是數形結合的一個典型例子。畢達哥拉斯學派研究出了一個公式:若m是奇數,則m、(m^2-1)/2及(m^2+1)/2便是三元數組,分別表示一個直角三角形的兩條直角邊和斜邊。

下面的遞推式構造列表創建了畢達哥拉斯三元組:

運行結果如圖3-28所示。

圖3-28 運行結果

主站蜘蛛池模板: 仙居县| 嘉峪关市| 顺义区| 通化县| 侯马市| 东至县| 从江县| 祁阳县| 永靖县| 沭阳县| 陆良县| 嵊泗县| 阳山县| 石柱| 故城县| 中方县| 边坝县| 金门县| 修文县| 民勤县| 平利县| 托克逊县| 元朗区| 遵化市| 班戈县| 沁阳市| 周口市| 宜都市| 延寿县| 宽城| 托里县| 鄂温| 民县| 临汾市| 蕉岭县| 依安县| 桐梓县| 芮城县| 广汉市| 江西省| 葵青区|