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

  • Python從入門到精通
  • 明日科技
  • 8198字
  • 2019-12-06 14:16:31

5.2 列表

對于歌曲列表(list)大家一定很熟悉,在列表中記錄著要播放歌曲的名稱,如圖5.4所示,即為手機App的歌曲列表頁面。

圖5.4 歌曲列表

Python中的列表和歌曲列表類似,也是由一系列按特定順序排列的元素組成。它是Python中內置的可變序列。在形式上,列表的所有元素都放在一對中括號“[]”中,兩個相鄰元素間使用逗號“,”分隔。在內容上,可以將整數、實數、字符串、列表、元組等任何類型的內容放入列表中,并且同一個列表中,元素的類型可以不同,因為它們之間沒有任何關系。由此可見,Python中的列表是非常靈活的,這一點與其他語言是不同的。

5.2.1 列表的創建和刪除

在Python中提供了多種創建列表的方法,下面分別進行介紹。

1.使用賦值運算符直接創建列表

同其他類型的Python變量一樣,創建列表時,也可以使用賦值運算符“=”直接將一個列表賦值給變量。具體的語法格式如下:

    listname = [element 1,element 2,element 3,...,element n]

其中,listname表示列表的名稱,可以是任何符合Python命名規則的標識符;element 1、element 2、element 3、element n表示列表中的元素,個數沒有限制,并且只要是Python支持的數據類型就可以。

例如,下面定義的都是合法的列表。

01  num = [7,14,21,28,35,42,49,56,63]
02  verse = ["自古逢秋悲寂寥","我言秋日勝春朝","晴空一鶴排云上","便引詩情到碧霄"]
03  untitle = ['Python',28,"人生苦短,我用Python",["爬蟲","自動化運維","云計算","Web開發"]]
04  python = ['優雅',"明確",'''簡單''']

說明

在使用列表時,雖然可以將不同類型的數據放入同一個列表中,但是通常情況下,我們不這樣做,而是在一個列表中只放入一種類型的數據。這樣可以提高程序的可讀性。

2.創建空列表

在Python中,也可以創建空列表,例如,要創建一個名稱為emptylist的空列表,可以使用下面的代碼:

    emptylist = []
3.創建數值列表

在Python中,數值列表很常用。例如,在考試系統中記錄學生的成績,或者在游戲中記錄每個角色的位置,各個玩家的得分情況等。在Python中,可以使用list()函數直接將range()函數循環出來的結果轉換為列表。

說明

關于range()函數的詳細介紹請參見4.3.2節。

list()函數的基本語法如下:

    list(data)

其中,data表示可以轉換為列表的數據,其類型可以是range對象、字符串、元組或者其他可迭代類型的數據。

例如,創建一個10~20(不包括20)中所有偶數的列表,可以使用下面的代碼。

    list(range(10, 20, 2))

運行上面的代碼后,將得到下面的列表。

    [10, 12, 14, 16, 18]

說明

使用list()函數不僅能通過range對象創建列表,還可以通過其他對象創建列表。

4.刪除列表

對于已經創建的列表,不再使用時,可以使用del語句將其刪除。語法格式如下:

    del listname

其中,listname為要刪除列表的名稱。

說明

del語句在實際開發時,并不常用。因為Python自帶的垃圾回收機制會自動銷毀不用的列表,所以即使我們不手動將其刪除,Python也會自動將其回收。

例如,定義一個名稱為verse的列表,然后再應用del語句將其刪除,可以使用下面的代碼。

01  verse = ["自古逢秋悲寂寥","我言秋日勝春朝","晴空一鶴排云上","便引詩情到碧霄"]
02  del verse

常見錯誤:在刪除列表前,一定要保證輸入的列表名稱是已經存在的,否則將出現如圖5.5所示的錯誤。

圖5.5 刪除的列表不存在產生的異常信息

5.2.2 訪問列表元素

在Python中,如果想將列表的內容輸出也比較簡單,可以直接使用print()函數。例如,要想打印上面列表中的untitle列表,則可以使用下面的代碼。

    print(untitle)

執行結果如下:

    ['Python', 28, '人生苦短,我用Python', ['爬蟲', '自動化運維', '云計算', 'Web開發', '游戲']]

從上面的執行結果中可以看出,在輸出列表時,是包括左右兩側的中括號的。如果不想輸出全部的元素,也可以通過列表的索引獲取指定的元素。例如,要獲取列表untitle中索引為2的元素,可以使用下面的代碼。

    print(untitle[2])

執行結果如下:

    人生苦短,我用Python

從上面的執行結果中可以看出,在輸出單個列表元素時,不包括中括號,如果是字符串,還不包括左右的引號。

【例5.1】 輸出每日一帖。(實例位置:資源包\TM\sl\05\01)

在IDLE中創建一個名稱為tips.py的文件,然后在該文件中導入日期時間類,然后定義一個列表(保存7條勵志文字作為每日一帖的內容),再獲取當前的星期,最后將當前的星期作為列表的索引,輸出元素內容,代碼如下:

說明

在上面的代碼中,datetime.datetime.now()方法用于獲取當前日期,而weekday()方法則是從日期時間對象中獲取星期,其值為0~6中的一個,為0時代表星期一,為1時代表星期二,依此類推,為6時代表星期日。

運行結果如圖5.6所示。

圖5.6 根據星期輸出每日一帖

說明

上面介紹的是訪問列表中的單個元素。實際上,列表還可以通過切片操作實現處理列表中的部分元素。關于切片的詳細介紹請參見5.1.2節。

5.2.3 遍歷列表

遍歷列表中的所有元素是常用的一種操作,在遍歷的過程中可以完成查詢、處理等功能。在生活中,如果想要去商場買一件衣服,就需要在商場中逛一遍,看是否有想要的衣服,逛商場的過程就相當于列表的遍歷操作。在Python中,遍歷列表的方法有多種,下面介紹兩種常用的方法。

1.直接使用for循環實現

直接使用for循環遍歷列表,只能輸出元素的值。它的語法格式如下:

    for item in listname:
        # 輸出item

其中,item用于保存獲取到的元素值,要輸出元素內容時,直接輸出該變量即可;listname為列表名稱。

例如,定義一個保存一首古詩的列表,然后通過for循環遍歷該列表,并輸出各個詩句,代碼如下:

執行上面的代碼,將顯示如圖5.7所示的結果。

2.使用for循環和enumerate()函數實現

使用for循環和enumerate()函數可以實現同時輸出索引值和元素內容。它的語法格式如下:

圖5.7 通過for循環遍歷列表

    for index,item in enumerate(listname):
        # 輸出index和item

參數說明如下:

 index:用于保存元素的索引;

 item用于保存獲取到的元素值,要輸出元素內容時,直接輸出該變量即可;

 listname為列表名稱。

例如,定義一個保存一首古詩的列表,然后通過for循環和enumerate()函數遍歷該列表,并輸出索引和詩句,代碼如下:

執行上面的代碼,將顯示下面的結果。

      秋詞
  0 自古逢秋悲寂寥
  1 我言秋日勝春朝
  2 晴空一鶴排云上
  3 便引詩情到碧霄

如果想實現兩句一行輸出各個詩句,請看下面的實例。

【例5.2】 每兩句一行輸出古詩《長歌行》。(實例位置:資源包\TM\sl\05\02)

在IDLE中創建一個名稱為printverse.py的文件,并且在該文件中先輸出古詩標題,然后定義一個列表(保存古詩內容),再應用for循環和enumerate()函數遍歷列表,在循環體中通過if…else語句判斷是否為偶數,如果為偶數則不換行輸出,否則換行輸出。代碼如下:

說明

在上面的代碼中,在print()函數中使用“, end=''”表示不換行輸出,即下一條print()函數的輸出內容會和這個內容在同一行輸出。

運行結果如圖5.8所示。

圖5.8 每兩行一句輸出古詩《長歌行》

5.2.4 添加、修改和刪除列表元素

添加、修改和刪除列表元素也稱為更新列表。在實際開發時,經常需要對列表進行更新。下面分別介紹如何實現列表元素的添加、修改和刪除。

1.添加元素

在5.1節序列概述中介紹了可以通過“+”號將兩個序列連接,通過該方法也可以實現為列表添加元素。但是這種方法的執行速度要比直接使用列表對象的append()方法慢,所以建議在實現添加元素時,使用列表對象的append()方法實現。列表對象的append()方法用于在列表的末尾追加元素,它的語法格式如下:

    listname.append(obj)

其中,listname為要添加元素的列表名稱;obj為要添加到列表末尾的對象。

例如,定義一個包括4個元素的列表,然后應用append()方法向該列表的末尾再添加一個元素,可以使用下面的代碼。

上面的代碼在IDEL中的執行過程如圖5.9所示。

圖5.9 向列表中添加元素

下面通過一個具體的實例演示為列表添加元素的應用。

場景模擬:在20世紀50年代早期,Bryan Thwaites(史威茲)擔任教師時,要求學生計算一組數列,其規則為:當某數是偶數時,將其除以2;如果是奇數,則先乘以3再加1。根據當時學生的探討及史威茲本人的研究,這個序列最后必定會是數字1,并且出現1以后,又會按照“4"2"1”進行循環下去。所以將1視為這個序列的終點。本實例將創建一個列表,用于存儲符合這個條件的序列。

【例5.3】 創建符合Bryan Thwaites要求的列表。(實例位置:資源包\TM\sl\05\03)

在IDLE中創建一個名稱為numberlist.py的文件,然后在該文件中定義一個空列表,并定義一個表示初始值的變量a,讓其等于6,然后創建一個無限循環,在該循環中,判斷a是否為偶數,如果為偶數,則讓其除以2,結果再賦值給a,否則讓其乘以3再加1,結果也賦值給a,直到a等于1時,使用break語句跳出循環,另外在每次循環時,還需要把a的值添加到列表中,最后輸出列表,代碼如下:

說明

在上面的代碼中,之所以使用a//2,是因為這樣代表整除,可以得到整數。

運行結果如圖5.10所示。

圖5.10 創建符合Bryan Thwaites要求的列表

說明

在本實例中,設置的初始值是6,有興趣的讀者可以換為其他的數字試試。

說明

列表對象除了提供append()方法向列表中添加元素外,還提供了insert()方法向列表中添加元素。該方法用于向列表的指定位置插入元素。但是由于該方法的執行效率沒有append()方法高,所以不推薦這種方法。

上面介紹的是向列表中添加一個元素,如果想要將一個列表中的全部元素添加到另一個列表中,可以使用列表對象的extend()方法實現。extend()方法的具體語法如下:

    listname.extend(seq)

其中,listname為原列表;seq為要添加的列表。語句執行后,seq2的內容將追加到listname的后面。

例如,創建兩個列表,然后應用extend()方法將第一個列表添加到第二個列表中,具體代碼如下:

01  verse1 = ["常記溪亭日暮","沉醉不知歸路","興盡晚回舟","誤入藕花深處","爭渡","爭渡","驚起一灘鷗鷺"]
02  verse2 = ["李清照","如夢令"]
03  verse2.extend(verse1)
04  print(verse2)

上面的代碼運行后,將顯示下面的內容。

    ['李清照', '如夢令', '常記溪亭日暮', '沉醉不知歸路', '興盡晚回舟', '誤入藕花深處', '爭渡', '爭渡', '驚起一灘鷗鷺']
2.修改元素

修改列表中的元素只需要通過索引獲取該元素,然后再為其重新賦值即可。例如,定義一個保存3個元素的列表,然后修改索引值為2的元素,代碼如下:

01  verse = ["長亭外","古道邊","芳草碧連天"]
02  print(verse)
03  verse[2] = "一行白鷺上青天"    # 修改列表的第3個元素
04  print(verse)

上面的代碼在IDEL中的執行過程如圖5.11所示。

圖5.11 修改列表的指定元素

3.刪除元素

刪除元素主要有兩種情況,一種是根據索引刪除,另一種是根據元素值進行刪除。下面分別進行介紹。

(1)根據索引刪除

刪除列表中的指定元素和刪除列表類似,也可以使用del語句實現。所不同的就是在指定列表名稱時,換為列表元素。例如,定義一個保存3個元素的列表,刪除最后一個元素,可以使用下面的代碼。

01  verse = ["長亭外","古道邊","芳草碧連天"]
02  del verse[-1]
03  print(verse)

上面的代碼在IDLE中的執行過程如圖5.12所示。

圖5.12 刪除列表的指定元素

(2)根據元素值刪除

如果想要刪除一個不確定其位置的元素(即根據元素值刪除),可以使用列表對象的remove()方法實現。例如,要刪除列表中內容為“古道邊”的元素,可以使用下面的代碼。

01  verse = ["長亭外","古道邊","芳草碧連天"]
02  verse.remove("古道邊")

使用列表對象的remove()方法刪除元素時,如果指定的元素不存在,將出現如圖5.13所示的異常信息。

圖5.13 刪除不存的元素時出現的異常信息

所以在使用remove()方法刪除元素前,最好先判斷該元素是否存在,改進后的代碼如下:

說明

列表對象的count()方法用于判斷指定元素出現的次數,返回結果為0時,表示不存在該元素。關于count()方法的詳細介紹請參見5.2.5節。

執行上面的代碼后,將顯示下面的列表原有內容:

    ['常記溪亭日暮', '沉醉不知歸路', '興盡晚回舟', '誤入藕花深處', '爭渡', '爭渡', '驚起一灘鷗鷺']

5.2.5 對列表進行統計計算

Python的列表提供了內置的一些函數來實現統計計算方面的功能。下面介紹常用的功能。

1.獲取指定元素出現的次數

使用列表對象的count()方法可以獲取指定元素在列表中的出現次數。基本語法格式如下:

    listname.count(obj)

其中,listname表示列表的名稱;obj表示要判斷是否存在的對象,這里只能進行精確匹配,即不能是元素值的一部分。

例如,創建一個列表,內容為李清照的《如夢令》中的詩句,然后應用列表對象的count()方法判斷元素“爭渡”出現的次數,代碼如下:

01  verse = ["常記溪亭日暮","沉醉不知歸路","興盡晚回舟","誤入藕花深處","爭渡","爭渡","驚起一灘鷗鷺"]
02  num = verse.count("爭渡")
03  print(num)

上面的代碼運行后,將顯示2,表示在列表verse中“爭渡”出現了兩次。

2.獲取指定元素首次出現的下標

使用列表對象的index()方法可以獲取指定元素在列表中首次出現的位置(即索引)。基本語法格式如下:

    listname.index(obj)

參數說明如下:

 listname:表示列表的名稱;

 obj:表示要查找的對象,這里只能進行精確匹配。如果指定的對象不存在,則拋出如圖5.14所示的異常;

 返回值:首次出現的索引值。

圖5.14 查找對象不存在時拋出的異常

例如,創建一個列表,內容為李清照的《如夢令》中的詩句,然后應用列表對象的index()方法判斷元素“爭渡”首次出現的位置,代碼如下:

01  verse = ["常記溪亭日暮","沉醉不知歸路","興盡晚回舟","誤入藕花深處","爭渡","爭渡","驚起一灘鷗鷺"]
02  position = verse.index("爭渡")
03  print(position)

上面的代碼運行后,將顯示4,表示“爭渡”在列表verse中首次出現的索引位置是4。

3.統計數值列表的元素和

在Python中,提供了sum()函數用于統計數值列表中各元素的和。語法格式如下:

    sum(iterable[,start])

參數說明如下:

 iterable:表示要統計的列表;

 start:表示統計結果是從哪個數開始(即將統計結果加上start所指定的數),是可選參數,如果沒有指定,默認值為0。

例如,定義一個保存10名學生語文成績的列表,然后應用sum()函數統計列表中元素的和,即統計總成績,然后輸出,代碼如下:

上面的代碼執行后,將顯示“語文總成績為:968”。

5.2.6 對列表進行排序

在實際開發時,經常需要對列表進行排序。Python中提供了兩種常用的對列表進行排序的方法。下面分別進行介紹。

1.使用列表對象的sort()方法實現

列表對象提供了sort()方法用于對原列表中的元素進行排序。排序后原列表中的元素順序將發生改變。列表對象的sort()方法的語法格式如下:

    listname.sort(key=None, reverse=False)

參數說明如下:

 listname:表示要進行排序的列表;

 key:表示指定一個從每個列表元素中提取一個比較鍵(例如,設置“key=str.lower”表示在排序時不區分字母大小寫);

 reverse:可選參數,如果將其值指定為True,則表示降序排列,如果為False,則表示升序排列。默認為升序排列。

例如,定義一個保存10名學生語文成績的列表,然后應用sort()方法對其進行排序,代碼如下:

執行上面的代碼,將顯示以下內容。

    原列表:[98, 99, 97, 100, 100, 96, 94, 89, 95, 100]
    升  序:[89, 94, 95, 96, 97, 98, 99, 100, 100, 100]
    降  序:[100, 100, 100, 99, 98, 97, 96, 95, 94, 89]

使用sort()方法進行數值列表的排序比較簡單,但是使用sort()方法對字符串列表進行排序時,采用的規則是先對大寫字母進行排序,然后再對小寫字母進行排序。如果想要對字符串列表進行排序(不區分大小寫時),需要指定其key參數。例如,定義一個保存英文字符串的列表,然后應用sort()方法對其進行升序排列,可以使用下面的代碼。

運行上面的代碼,將顯示以下內容。

    區分字母大小寫: ['Angela', 'Tom', 'cat', 'pet']
    不區分字母大小寫: ['Angela', 'cat', 'pet', 'Tom']

說明

采用sort()方法對列表進行排序時,對于中文支持不好。排序的結果與我們常用的按拼音或者筆畫都不一致。如果需要實現對中文內容的列表排序,還需要重新編寫相應的方法進行處理,不能直接使用sort()方法。

2.使用內置的sorted()函數實現

在Python中,提供了一個內置的sorted()函數,用于對列表進行排序。使用該函數進行排序后,原列表的元素順序不變。sorted()函數的語法格式如下:

    sorted(iterable, key=None, reverse=False)

參數說明如下:

 iterable:表示要進行排序的列表名稱;

 key:表示指定從每個元素中提取一個用于比較的鍵(例如,設置“key=str.lower”表示在排序時不區分字母大小寫);

 reverse:可選參數,如果將其值指定為True,則表示降序排列,如果為False,則表示升序排列。默認為升序排列。

例如,定義一個保存10名學生語文成績的列表,然后應用sorted()函數對其進行排序,代碼如下:

執行上面的代碼,將顯示以下內容。

    升序:[89, 94, 95, 96, 97, 98, 99, 100, 100, 100]
    降序:[100, 100, 100, 99, 98, 97, 96, 95, 94, 89]
    原序列:[98, 99, 97, 100, 100, 96, 94, 89, 95, 100]

說明

列表對象的sort()方法和內置sorted()函數的作用基本相同,所不同的就是使用sort()方法時,會改變原列表的元素排列順序,但是使用sorted()函數時,會建立一個原列表的副本,該副本為排序后的列表。

5.2.7 列表推導式

使用列表推導式可以快速生成一個列表,或者根據某個列表生成滿足指定需求的列表。列表推導式通常有以下幾種常用的語法格式。

(1)生成指定范圍的數值列表,語法格式如下:

    list = [Expression for var in range]

參數說明如下:

 list:表示生成的列表名稱;

 Expression:表達式,用于計算新列表的元素;

 var:循環變量;

 range:采用range()函數生成的range對象。

例如,要生成一個包括10個隨機數的列表,要求數的范圍在10~100(包括100),具體代碼如下:

執行結果如下:

    生成的隨機數為:[38, 12, 28, 26, 58, 67, 100, 41, 97, 15]

(2)根據列表生成指定需求的列表,語法格式如下:

    newlist = [Expression for var in list]

參數說明如下:

 newlist:表示新生成的列表名稱;

 Expression:表達式,用于計算新列表的元素;

 var:變量,值為后面列表的每個元素值;

 list:用于生成新列表的原列表。

例如,定義一個記錄商品價格的列表,然后應用列表推導式生成一個將全部商品價格打五折的列表,具體代碼如下:

01  price = [1200,5330,2988,6200,1998,8888]
02  sale = [int(x*0.5) for x in price]
03  print("原價格:",price)
04  print("打五折的價格:",sale)

執行結果如下:

    原價格: [1200, 5330, 2988, 6200, 1998, 8888]
    打五折的價格: [600, 2665, 1494, 3100, 999, 4444]

(3)從列表中選擇符合條件的元素組成新的列表,語法格式如下:

    newlist = [Expression for var in list if condition]

參數說明如下:

 newlist:表示新生成的列表名稱;

 Expression:表達式,用于計算新列表的元素;

 var:變量,值為后面列表的每個元素值;

 list:用于生成新列表的原列表;

 condition:條件表達式,用于指定篩選條件。

例如,定義一個記錄商品價格的列表,然后應用列表推導式生成一個商品價格高于5000的列表,具體代碼如下:

01  price = [1200,5330,2988,6200,1998,8888]
02  sale = [x for x in price if x>5000]
03  print("原列表:",price)
04  print("價格高于5000的:",sale)

執行結果如下:

    原列表: [1200, 5330, 2988, 6200, 1998, 8888]
    價格高于5000的: [5330, 6200, 8888]

5.2.8 二維列表

在Python中,由于列表元素可以是列表,所以它也支持二維列表的概念。那么什么是二維列表呢?前文提到酒店有很多房間,這些房間都可以構成一個列表,如果這個酒店有500個房間,那么拿到499號房鑰匙的旅客可能就不高興了,從1號房走到499號房要花好長時間,因此酒店設置了很多樓層,每個樓層都會有很多房間,形成一個立體的結構,把大量的房間均攤到每個樓層,這種結構就是二維列表結構。使用二維列表結構表示酒店每個樓層的房間號的效果如圖5.15所示。

二維列表中的信息以行和列的形式表示,第一個下標代表元素所在的行,第二個下標代表元素所在的列。

圖5.15 二維列表結構的樓層房間號

在Python中,創建二維列表有以下3種常用的方法。

1.直接定義二維列表

在Python中,二維列表就是包含列表的列表。即一個列表的每個元素又都是一個列表。例如,下面的列表就是二維列表。

    [['移', '舟', '泊', '煙', '渚'],
    ['日', '暮', '客', '愁', '新'],
    ['野', '曠', '天', '低', '樹'],
    ['江', '清', '月', '近', '人']]

所以在創建二維列表時,可以直接使用下面的語法格式進行定義。

    listname = [[元素11, 元素12, 元素13, ..., 元素1n],
     [元素21, 元素22, 元素23, ..., 元素2n],
     ...,
     [元素n1, 元素n2, 元素n3, ..., 元素nn]]

參數說明如下:

 listname:表示生成的列表名稱;

 [元素11,元素12,元素13,...,元素1n]:表示二維列表的第一行,也是一個列表。其中元素11、元素12……代表第一行中的列;

 [元素21,元素22,元素23,...,元素2n]:表示二維列表的第二行;

 [元素n1,元素n2,元素n3,...,元素nn]:表示二維列表的第n行。

例如,定義一個包含4行5列的二維列表,可以使用下面的代碼。

01  verse = [['移', '舟', '泊', '煙', '渚'], ['日', '暮', '客', '愁', '新'],
02  ['野', '曠', '天', '低', '樹'], ['江', '清', '月', '近', '人']]

上面的代碼,將創建以下二維列表。

    [['移', '舟', '泊', '煙', '渚'], ['日', '暮', '客', '愁', '新'], ['野', '曠', '天', '低', '樹'], ['江', '清', '月', '近', '人']]
2.使用嵌套的for循環創建

創建二維列表,可以使用嵌套的for循環實現。例如,創建一個包含4行5列的二維列表,可以使用下面的代碼。

上面代碼在執行后,將創建以下二維列表。

    [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
3.使用列表推導式創建

使用列表推導式也可以創建二維列表,而且這種方法也是推薦的方法,因為它比較簡潔。例如,使用列表推導式創建一個包含4行5列的二維列表可以使用下面的代碼。

    arr = [[j for j in range(5)] for i in range(4)]

上面代碼在執行后,將創建以下二維列表。

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

創建二維數組后,可以通過以下語法格式訪問列表中的元素。

    listname[下標1][下標2]

參數說明如下:

 listname:表示列表名稱;

 下標1:表示列表中第幾行,下標值從0開始,即第一行的下標為0;

 下標2:表示列表中第幾列,下標值從0開始,即第一列的下標為0。

例如,要訪問二維列表中的第2行、第4列,可以使用下面的代碼。

    verse[1][3]

下面通過一個具體的實例演示二維列表的應用。

【例5.4】 使用二維列表輸出不同版式的古詩《宿建德江》。(實例位置:資源包\TM\sl\05\04)

在IDLE中創建一個名稱為printverse.py的文件,然后在該文件中首先定義4個字符串,內容為古詩《宿建德江》的詩句,并定義一個二維列表,然后應用嵌套的for循環將古詩以橫版方式輸出,再將二維列表進行逆序排列,最后應用嵌套的for循環將古詩以豎版方式輸出,代碼如下:

說明

在上面的代碼中,list()函數用于將字符串轉換為列表;列表對象的reverse()方法用于對列表進行逆序排列,即將列表的最后一個元素移到第一個,倒數第二個元素移到第二個,依此類推。

運行結果如圖5.16所示。

圖5.16 使用二維列表輸出古詩《宿建德江》

主站蜘蛛池模板: 榆社县| 台南县| 玛沁县| 织金县| 马边| 慈溪市| 白朗县| 涿州市| 九龙县| 固原市| 舒城县| 新密市| 平南县| 天柱县| 临潭县| 肃南| 山西省| 正镶白旗| 嵊州市| 栾城县| 五峰| 麻阳| 蕲春县| 洛阳市| 育儿| 博湖县| 永新县| 耿马| 肥城市| 广平县| 双桥区| 扬中市| 库尔勒市| 武隆县| 祁连县| 报价| 青田县| 虞城县| 隆化县| 慈利县| 察隅县|