Python基礎(chǔ)列表介紹、使用

第3章
學(xué)習(xí)目標(biāo):

創(chuàng)新互聯(lián)長(zhǎng)期為超過(guò)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為昂昂溪企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),昂昂溪網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

列表是什么以及如何使用列表元素。列表讓你能夠在一個(gè)地方存儲(chǔ)成組的信息,其中可以只包含幾個(gè)元素,也可以包含數(shù)百萬(wàn)個(gè)元素。列表是新手可直接使用的最強(qiáng)大的Python功能之一,它融合了眾多重要的編程概念。

3.1 列表是什么

列表由一系列按特定順序排列的元素組成。你可以創(chuàng)建包含字母表中所有字母、數(shù)字0~9或
所有家庭成員姓名的列表;也可以將任何東西加入列表中,其中的元素之間可以沒(méi)有任何關(guān)系。
鑒于列表通常包含多個(gè)元素,給列表指定一個(gè)表示復(fù)數(shù)的名稱(如letters、digits或names)是
個(gè)不錯(cuò)的主意。

在Python中,用中括號(hào) [] 表示列表,并用逗號(hào)來(lái)分隔其中的元素。

例如:

bicycles.py

bicycles = [ 'trek','cannondale','redline','specialired' ]
print(bicycles)
# 結(jié)果:
['trek', 'cannondale', 'redline', 'specialired']

3.1.1 訪問(wèn)列表元素

列表是有序集合,因此要訪問(wèn)列表的任何元素,只需將該元素的位置或索引告訴Python即可。
要訪問(wèn)列表元素,可指出列表的名稱,再指出元素的索引,并將其放在方括號(hào)內(nèi)。

# 例如,從列表bicycles中提取第一款自行車(chē)

bicycles = [ 'trek','cannondale','redline','specialired' ]

print(bicycles[0])
# 結(jié)果:
trek

# 當(dāng)然,或者 可使用方法title()讓元素 'trek'的格式更整潔:
print(bicycles[0].title())
# 這個(gè)示例的輸出與前一個(gè)示例相同,只是首字母T是大寫(xiě)的。

3.1.2 檢索從0而不是1開(kāi)始

在Python中,第一個(gè)列表元素的索引為0,而不是1。在大多數(shù)編程語(yǔ)言中都是如此,這與列
表操作的底層實(shí)現(xiàn)相關(guān)。

print(bicycles[1])

print(bicycles[3])

# 這些代碼返回列表中得第二個(gè)和第四個(gè)元素:
cannondale
specialized

# Python為訪問(wèn)最后一個(gè)列表元素提供了一種特殊語(yǔ)法。通過(guò)將索引指定為-1,可讓Python返
回最后一個(gè)列表元素:
print(bicycles[-1])

這些代碼返回'specialized'。這種語(yǔ)法很有用,因?yàn)槟憬?jīng)常需要在不知道列表長(zhǎng)度的情況
下訪問(wèn)最后的元素。這種約定也適用于其他負(fù)數(shù)索引,例如,索引-2返回倒數(shù)第二個(gè)列表元素,
索引-3返回倒數(shù)第三個(gè)列表元素,以此類推。

3.1.3 使用列表中的各個(gè)值

可像使用其他變量一樣使用列表中的各個(gè)值。例如,你可以使用拼接根據(jù)列表中的值來(lái)創(chuàng)建
消息。
下面來(lái)嘗試從列表中提取第一款自行車(chē),并使用這個(gè)值來(lái)創(chuàng)建一條消息:

message = "My first bicycle was a " + bicycles[0].title() + "."

print(message)

# 結(jié)果:
My first bicycle was a Trek.
動(dòng)手試一試

請(qǐng)嘗試編寫(xiě)一些簡(jiǎn)短的程序來(lái)完成下面的練習(xí),以獲得一些使用Python 列表的第
一手經(jīng)驗(yàn)。你可能需要為每章的練習(xí)創(chuàng)建一個(gè)文件夾,以整潔有序的方式存儲(chǔ)為完成各
章的練習(xí)而編寫(xiě)的程序。

3-1 姓名:將一些朋友的姓名存儲(chǔ)在一個(gè)列表中,并將其命名為names。依次訪問(wèn)
該列表中的每個(gè)元素,從而將每個(gè)朋友的姓名都打印出來(lái)。

names = [ 'zhangsan','lisi','wangwu','zhaoliu']
print(names[0])
print(names[1])
print(names[-2])
print(names[-1])

# 結(jié)果:
zhangsan
lisi
wangwu
zhaoliu

3-2 問(wèn)候語(yǔ):繼續(xù)使用練習(xí)3-1 中的列表,但不打印每個(gè)朋友的姓名,而為每人打
印一條消息。每條消息都包含相同的問(wèn)候語(yǔ),但抬頭為相應(yīng)朋友的姓名。

messname1 = "Hi " + names[0].title() + "."

messname2 = "Hi " + names[1].title() + "."

messname3 = "Hi " + names[2].title() + "."

messname4 = "Hi " + names[3].title() + "."

print(messname1)
print(messname2)
print(messname3)
print(messname4)

# 結(jié)果:
Hi Zhangsan.
Hi Lisi.
Hi Wangwu.
Hi Zhaoliu.

3-3 自己的列表:想想你喜歡的通勤方式,如騎摩托車(chē)或開(kāi)汽車(chē),并創(chuàng)建一個(gè)包含
多種通勤方式的列表。根據(jù)該列表打印一系列有關(guān)這些通勤方式的宣言,如“I would like
to own a Honda motorcycle”。

bicycles = ['bike','electric car','motorbike','car']

mess1 = "I want to buy an " + bicycles[1].title() + "."

print(mess1)

# 結(jié)果:
I want to buy an Electric Car.

3.2 修改、添加和刪除元素

創(chuàng)建的大多數(shù)列表都將是動(dòng)態(tài)的,這意味著列表創(chuàng)建后,將隨著程序的運(yùn)行增刪元素。例如:你創(chuàng)建一個(gè)游戲,要求玩家射殺從天而降的外星人;為此,可在開(kāi)始時(shí)將一些外星人存儲(chǔ)在
列表中,然后每當(dāng)有外星人被射殺時(shí),都將其從列表中刪除,而每次有新的外星人出現(xiàn)在屏幕上
時(shí),都將其添加到列表中。在整個(gè)游戲運(yùn)行期間,外星人列表的長(zhǎng)度將不斷變化。

3.2.1 修改列表元素

修改列表元素的語(yǔ)法與訪問(wèn)列表元素的語(yǔ)法類似。要修改列表元素,可指定列表名和要修改
的元素的索引,再指定該元素的新值。

例如:

motorcycles.py
-----------------------------------------
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

motorcycles[0] = 'ducati'
print(motorcycles)
-----------------------------------------
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']

3.2.2 在列表中添加元素

你可能出于眾多原因要在列表中添加新元素,例如,你可能希望游戲中出現(xiàn)新的外星人、添
加可視化數(shù)據(jù)或給網(wǎng)站添加新注冊(cè)的用戶。Python提供了多種在既有列表中添加新數(shù)據(jù)的方式。

  1. 在列表末尾添加元素

在列表中添加新元素時(shí),最簡(jiǎn)單的方式是將元素附加列表末尾。給列表附加元素時(shí),它將
添加到列表末尾。繼續(xù)使用前一個(gè)示例中的列表,在其末尾添加新元素'ducati':

motorcycles.append('ducati')
print(motorcycles)
---------------------------------------
['ducati', 'yamaha', 'suzuki', 'ducat']
# 方法append()將元素'ducati'添加到了列表末尾 ,而不影響列表中的其他所有元素

方法append()讓動(dòng)態(tài)地創(chuàng)建列表易如反掌,例如,你可以先創(chuàng)建一個(gè)空列表,再使用一系列的
append()語(yǔ)句添加元素。下面來(lái)創(chuàng)建一個(gè)空列表,再在其中添加元素'honda'、'yamaha'和'suzuki':

motorcycles = []

motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')

print(motorcycles)
-----------------------------
['honda', 'yamaha', 'suzuki']

這種創(chuàng)建列表的方式極其常見(jiàn),因?yàn)榻?jīng)常要等程序運(yùn)行后,你才知道用戶要在程序中存儲(chǔ)哪
些數(shù)據(jù)。為控制用戶,可首先創(chuàng)建一個(gè)空列表,用于存儲(chǔ)用戶將要輸入的值,然后將用戶提供的
每個(gè)新值附加到列表中。

  1. 在列表中插入元素

使用方法insert()可在列表的任何位置添加新元素。為此,你需要指定新元素的索引和值。

motorcycles.insert(0,'ducati')
print(motorcycles)
---------------------------------------
['ducati', 'honda', 'yamaha', 'suzuki']

# 在這個(gè)示例中,值'ducati'被出入到列表開(kāi)頭;方法insert()在索引0處添加空間,并將值'ducati'存儲(chǔ)到這個(gè)地方。這種操作將列表中既有的每個(gè)元素都右一個(gè)位置。

3.2.3 從列表中刪除元素

你經(jīng)常需要從列表中刪除一個(gè)或多個(gè)元素。例如,玩家將空中的一個(gè)外星人射殺后,你很可
能要將其從存活的外星人列表中刪除;當(dāng)用戶在你創(chuàng)建的Web應(yīng)用中注銷其賬戶時(shí),你需要將該
用戶從活躍用戶列表中刪除。你可以根據(jù)位置或值來(lái)刪除列表中的元素。

  1. 使用del語(yǔ)句刪除元素
# 知道要?jiǎng)h除的元素所在列表中的位置,可使用del語(yǔ)句
motorcycles = ['ducati', 'honda', 'yamaha', 'suzuki']
del motorcycles[0]
print(motorcycles)
-----------------------------
['honda', 'yamaha', 'suzuki']
  1. 使用方法pop()刪除元素

有時(shí)候,你要將元素從列表中刪除,并接著使用它的值。例如,你可能需要獲取剛被射殺的
外星人的x和y坐標(biāo),以便在相應(yīng)的位置顯示爆炸效果;在Web應(yīng)用程序中,你可能要將用戶從活
躍成員列表中刪除,并將其加入到非活躍成員列表中。

方法pop()可刪除列表末尾的元素,并讓你能夠接著使用它。術(shù)語(yǔ)彈出(pop)源自這樣的類
比:列表就像一個(gè)棧,而刪除列表末尾的元素相當(dāng)于彈出棧頂元素。

motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
------------------------------------------
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki

方法pop()是怎么起作用的呢?假設(shè)列表中的摩托車(chē)是按購(gòu)買(mǎi)時(shí)間存儲(chǔ)的,就可使用方法
pop()打印一條消息,指出最后購(gòu)買(mǎi)的是哪款摩托車(chē):

motorcycles = ['honda', 'yamaha', 'suzuki']

last_owned = motorcycles.pop()
print("The last motorcycle I owned was a " + last_owned.title() + ".")
-----------------------------------------------------------------------
The last motorcycle I owned was a Suzuki.
  1. 彈出列表中任何位置處的元素

可以使用pop()來(lái)刪除列表中任何位置的元素,只需在括號(hào)中指定要?jiǎng)h除的元素
的索引即可。

first_owned = motorcycles.pop(0)
print("The last motorcycle I owned was a " + first_owned.title() + ".")
-------------------------------------------------------------------------
The last motorcycle I owned was a Honda.

如果你不確定該使用del語(yǔ)句還是pop()方法,下面是一個(gè)簡(jiǎn)單的判斷標(biāo)準(zhǔn):如果你要從列表
中刪除一個(gè)元素,且不再以任何方式使用它,就使用del語(yǔ)句;如果你要在刪除元素后還能繼續(xù)
使用它,就使用方法pop()。

  1. 根據(jù)值刪除元素

有時(shí)候,你不知道要從列表中刪除的值所處的位置。如果你只知道要?jiǎng)h除的元素的值,可使
用方法remove()。

# 假設(shè)我們要從列表motorcycles中刪除值'ducati'
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
motorcycles = ['honda', 'yamaha', 'suzuki','ducati']
motorcycles.remove('ducati')
print(motorcycles)
-----------------------------------------------------
['honda', 'yamaha', 'suzuki']

使用remove()從列表中刪除元素時(shí),也可接著使用它的值。下面刪除值'ducati',并打印一
條消息,指出要將其從列表中刪除的原因:

motorcycles = ['honda', 'yamaha', 'suzuki','ducati']
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print("\nA " + too_expensive.title() + " is too expensive for me.")
-------------------------------------------------------------------
['honda', 'yamaha', 'suzuki']

A Ducati is too expensive for me.

注意方法remove()只刪除第一個(gè)指定的值。如果要?jiǎng)h除的值可能在列表中出現(xiàn)多次,就需要
使用循環(huán)來(lái)判斷是否刪除了所有這樣的值。你將在第7章學(xué)習(xí)如何這樣做。

動(dòng)手試一試

下面的練習(xí)比第2 章的練習(xí)要復(fù)雜些,但讓你有機(jī)會(huì)以前面介紹過(guò)的各種方式使用
列表。

3-4 嘉賓名單:如果你可以邀請(qǐng)任何人一起共進(jìn)晚餐(無(wú)論是在世的還是故去的),
你會(huì)邀請(qǐng)哪些人?請(qǐng)創(chuàng)建一個(gè)列表,其中包含至少3 個(gè)你想邀請(qǐng)的人;然后,使用這個(gè)
列表打印消息,邀請(qǐng)這些人來(lái)與你共進(jìn)晚餐。

dinner = []

dinner.append('zhangsan')
dinner.append('lisi')
dinner.append('wangwu')
print(dinner)
---------------------------------------
['zhangsan', 'lisi', 'wangwu']

3-5 修改嘉賓名單:你剛得知有位嘉賓無(wú)法赴約,因此需要另外邀請(qǐng)一位嘉賓。

dinner = []

dinner.append('zhangsan')
dinner.append('lisi')
dinner.append('wangwu')
print(dinner)

dinner[1] = 'zhaoliu'
print(dinner)
--------------------------------
['zhangsan', 'lisi', 'wangwu']
['zhangsan', 'zhaoliu', 'wangwu']
  • 以完成練習(xí)3-4 時(shí)編寫(xiě)的程序?yàn)榛A(chǔ),在程序末尾添加一條print 語(yǔ)句,指出哪
    位嘉賓無(wú)法赴約。
dinner = []

dinner.append('zhangsan')
dinner.append('lisi')
dinner.append('wangwu')
print(dinner)
no_dinner = dinner.pop(1)
print(no_dinner + " 無(wú)法赴約")
---------------------------------
['zhangsan', 'lisi', 'wangwu']
lisi 無(wú)法赴約
  • 修改嘉賓名單,將無(wú)法赴約的嘉賓的姓名替換為新邀請(qǐng)的嘉賓的姓名。
dinner = []

dinner.append('zhangsan')
dinner.append('lisi')
dinner.append('wangwu')
print(dinner)
no_dinner = dinner.pop(1)

dinner.insert(1,'zhaoliu')
print(dinner)
--------------------------------
['zhangsan', 'lisi', 'wangwu']
['zhangsan', 'zhaoliu', 'wangwu']
  • 再次打印一系列消息,向名單中的每位嘉賓發(fā)出邀請(qǐng)。
....上述代碼省略
print(dinner[0])
print(dinner[1])
print(dinner[2])
--------------------
zhangsan
zhaoliu
wangwu

3-6 添加嘉賓:你剛找到了一個(gè)更大的餐桌,可容納更多的嘉賓。請(qǐng)想想你還想邀
請(qǐng)哪三位嘉賓。

  • 以完成練習(xí)3-4 或練習(xí)3-5 時(shí)編寫(xiě)的程序?yàn)榛A(chǔ),在程序末尾添加一條print 語(yǔ)
    句,指出你找到了一個(gè)更大的餐桌。
print("找到了一個(gè)更大的餐桌")
------------------------------
找到了一個(gè)更大的餐桌
  • 使用insert()將一位新嘉賓添加到名單開(kāi)頭。
dinner.insert(0,'xiaoming')
print(dinner)
---------------------------------------------
['xiaoming', 'zhangsan', 'zhaoliu', 'wangwu']
  • 使用insert()將另一位新嘉賓添加到名單中間。
dinner.insert(2,'xiaofang')
print(dinner)
---------------------------------------------------------
['xiaoming', 'zhangsan', 'xiaofang', 'zhaoliu', 'wangwu']
  • 使用append()將最后一位新嘉賓添加到名單末尾。
dinner.append('xiaowu')
print(dinner)
-------------------------------------------------------------------
['xiaoming', 'zhangsan', 'xiaofang', 'zhaoliu', 'wangwu', 'xiaowu']
  • 打印一系列消息,向名單中的每位嘉賓發(fā)出邀請(qǐng)。
print("邀請(qǐng): " + dinner[0])
print("邀請(qǐng): " + dinner[1])
print("邀請(qǐng): " + dinner[2])
print("邀請(qǐng): " + dinner[3])
print("邀請(qǐng): " + dinner[4])
print("邀請(qǐng): " + dinner[5])
-----------------------------
邀請(qǐng): xiaoming
邀請(qǐng): zhangsan
邀請(qǐng): xiaofang
邀請(qǐng): zhaoliu
邀請(qǐng): wangwu
邀請(qǐng): xiaowu

3-7 縮減名單:你剛得知新購(gòu)買(mǎi)的餐桌無(wú)法及時(shí)送達(dá),因此只能邀請(qǐng)兩位嘉賓。

  • 以完成練習(xí)3-6 時(shí)編寫(xiě)的程序?yàn)榛A(chǔ),在程序末尾添加一行代碼,打印一條你只
    能邀請(qǐng)兩位嘉賓共進(jìn)晚餐的消息。
print("只能邀請(qǐng)兩位嘉賓共進(jìn)晚餐!")
  • 使用pop()不斷地刪除名單中的嘉賓,直到只有兩位嘉賓為止。每次從名單中彈
    出一位嘉賓時(shí),都打印一條消息,讓該嘉賓知悉你很抱歉,無(wú)法邀請(qǐng)他來(lái)共進(jìn)
    晚餐。
no_dinner = dinner.pop()
print("I'm sorry " + no_dinner)
no_dinner = dinner.pop()
print("I'm sorry " + no_dinner)
no_dinner = dinner.pop()
print("I'm sorry " + no_dinner)
no_dinner = dinner.pop()
print("I'm sorry " + no_dinner)
-------------------------------
I'm sorry xiaowu
I'm sorry wangwu
I'm sorry zhaoliu
I'm sorry xiaofang
  • 對(duì)于余下的兩位嘉賓中的每一位,都打印一條消息,指出他依然在受邀人之列。
print(dinner)
------------------------
['xiaoming', 'zhangsan']
  • 使用del 將最后兩位嘉賓從名單中刪除,讓名單變成空的。打印該名單,核實(shí)程
    序結(jié)束時(shí)名單確實(shí)是空的。
del dinner[0]
del dinner[0]
print(dinner)
-------------
[]

3.3 組織列表

在你創(chuàng)建的列表中,元素的排列順序常常是無(wú)法預(yù)測(cè)的,因?yàn)槟悴⒎强偰芸刂朴脩籼峁?shù)據(jù)
的順序。這雖然在大多數(shù)情況下都是不可避免的,但你經(jīng)常需要以特定的順序呈現(xiàn)信息。有時(shí)候,
你希望保留列表元素最初的排列順序,而有時(shí)候又需要調(diào)整排列順序。Python提供了很多組織列
表的方式,可根據(jù)具體情況選用。

3.3.1 使用方法sort()對(duì)列表進(jìn)行永久性排序

Python方法sort()讓你能夠較為輕松地對(duì)列表進(jìn)行排序。假設(shè)你有一個(gè)汽車(chē)列表,并要讓其
中的汽車(chē)按字母順序排列。為簡(jiǎn)化這項(xiàng)任務(wù),我們假設(shè)該列表中的所有值都是小寫(xiě)的。

cars.py
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
cars =  ['bmw','audi','toyota','subaru']
cars.sort()
print(cars)
-----------------------------------
['audi', 'bmw', 'subaru', 'toyota']

# 方法sort() 永久性地修改了列表元素的排列順序。
# 現(xiàn)在,汽車(chē)是按字母順序排列額,再也無(wú)法恢復(fù)到原來(lái)的排列順序

你還可以按與字母順序相反的順序排列列表元素,為此,只需向sort()方法傳遞參數(shù)
reverse=True。下面的示例將汽車(chē)列表按與字母順序相反的順序排列:

cars =  ['bmw','audi','toyota','subaru']
cars.sort(reverse=True)
print(cars)
-----------------------------------
['toyota', 'subaru', 'bmw', 'audi']

3.3.2 使用函數(shù)sorted()對(duì)列表進(jìn)行臨時(shí)排序

要保留列表元素原來(lái)的排列順序,同時(shí)以特定的順序呈現(xiàn)它們,可使用函數(shù)sorted()。函數(shù)
sorted()讓你能夠按特定順序顯示列表元素,同時(shí)不影響它們?cè)诹斜碇械脑寂帕许樞颉?/p>

下面嘗試對(duì)汽車(chē)列表調(diào)用這個(gè)函數(shù)。

cars =  ['bmw','audi','toyota','subaru']
print("Here is the original list:")
print(cars)

print("\nHere is the sorted list:")
print(sorted(cars))

print("\nHere is the original list again:")
print(cars)
--------------------------------------------
Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']

Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']

Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']

注意,調(diào)用函數(shù)sorted()后,列表元素的排列順序并沒(méi)有變。如果你要按與字母順
序相反的順序顯示列表,也可向函數(shù)sorted()傳遞參數(shù)reverse=True。

注意在并非所有的值都是小寫(xiě)時(shí),按字母順序排列列表要復(fù)雜些。決定排列順序時(shí),有多種
解讀大寫(xiě)字母的方式,要指定準(zhǔn)確的排列順序,可能比我們這里所做的要復(fù)雜。然而,
大多數(shù)排序方式都基于本節(jié)介紹的知識(shí)。

3.3.3 倒著打印列表

要反轉(zhuǎn)列表元素的排列順序,可使用方法reverse()。假設(shè)汽車(chē)列表是按購(gòu)買(mǎi)時(shí)間排列的,
可輕松地按相反的順序排列其中的汽車(chē):

cars =  ['bmw','audi','toyota','subaru']
print(cars)

cars.reverse()
print(cars)
-----------------------------------------
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']

注意,reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉(zhuǎn)列表元素的排
列順序。

方法reverse()永久性地修改列表元素的排列順序,但可隨時(shí)恢復(fù)到原來(lái)的排列順序,為此
只需對(duì)列表再次調(diào)用reverse()即可。

3.3.4 確定列表的長(zhǎng)度

使用函數(shù)len()可快速獲悉列表的長(zhǎng)度。在下面的示例中,列表包含4個(gè)元素,因此其長(zhǎng)度為4:

>>> cars = ['bmw','audi','toyota','subaru']
>>> len(cars)
4

在你需要完成如下任務(wù)時(shí),len()很有用:確定還有多少個(gè)外星人未被射殺,需要管理多少
項(xiàng)可視化數(shù)據(jù),網(wǎng)站有多少注冊(cè)用戶等。

注意Python計(jì)算列表元素?cái)?shù)時(shí)從1開(kāi)始,因此確定列表長(zhǎng)度時(shí),你應(yīng)該不會(huì)遇到差一錯(cuò)誤。

動(dòng)手試一試

3-8 放眼世界:想出至少5 個(gè)你渴望去旅游的地方。

  • [ ] 將這些地方存儲(chǔ)在一個(gè)列表中,并確保其中的元素不是按字母順序排列的。
toponymy = ['thailand','Singapore','japanese','egypt','america']
  • 按原始排列順序打印該列表。不要考慮輸出是否整潔的問(wèn)題,只管打印原始Python 列表。
print(toponymy)
----------------------------------------------------------
['thailand', 'Singapore', 'japanese', 'egypt', 'america']
  • [ ] 使用sorted()按字母順序打印這個(gè)列表,同時(shí)不要修改它。
print(sorted(toponymy))
---------------------------------------------------------
['america', 'egypt', 'japanese', 'singapore', 'thailand']
  • [ ] 再次打印該列表,核實(shí)排列順序未變。
print(toponymy)
---------------------------------------------------------
['thailand', 'singapore', 'japanese', 'egypt', 'america']
  • [ ] 使用sorted()按與字母順序相反的順序打印這個(gè)列表,同時(shí)不要修改它。
toponymy = ['thailand','japanese','singapore','egypt','america']
print(sorted(toponymy,reverse=True))
----------------------------------------------------------------
['thailand', 'singapore', 'japanese', 'egypt', 'america']
  • 再次打印該列表,核實(shí)排列順序未變。
print(toponymy)
---------------------------------------------------------
['thailand', 'japanese', 'singapore', 'egypt', 'america']
  • 使用reverse()修改列表元素的排列順序。打印該列表,核實(shí)排列順序確實(shí)變了。
toponymy = ['thailand','japanese','singapore','egypt','america']

print("Original list: ")
print(toponymy)
toponymy.reverse()
print("\nModify the list: ") 
print(toponymy)
---------------------------------------------------------
Original list:
['thailand', 'japanese', 'singapore', 'egypt', 'america']

Modify the list:
['america', 'egypt', 'singapore', 'japanese', 'thailand']
  • 使用reverse()再次修改列表元素的排列順序。打印該列表,核實(shí)已恢復(fù)到原來(lái)的排列順序。
toponymy.reverse()
print("\nModify the following list again: ")
print(toponymy)
-----------------------------------------------------------
Modify the following list again:
['thailand', 'japanese', 'singapore', 'egypt', 'america']
  • 使用sort()修改該列表,使其元素按字母順序排列。打印該列表,核實(shí)排列順序確實(shí)變了。

toponymy = ['thailand','japanese','singapore','egypt','america']
toponymy.sort()
print(toponymy)
---------------------------------------------------------
['america', 'egypt', 'japanese', 'singapore', 'thailand']
  • 使用sort()修改該列表,使其元素按與字母順序相反的順序排列。打印該列表,核實(shí)排列順序確實(shí)變了。
toponymy = ['thailand','japanese','singapore','egypt','america']
toponymy.sort()
print(toponymy)

toponymy.sort(reverse=True)
print(toponymy)
----------------------------------------------------------
['america', 'egypt', 'japanese', 'singapore', 'thailand']
['thailand', 'singapore', 'japanese', 'egypt', 'america']

3-9 晚餐嘉賓:在完成練習(xí)3-4~練習(xí)3-7時(shí)編寫(xiě)的程序之一中,使用len()打印一條消息,指出你邀請(qǐng)了多少位嘉賓來(lái)與你共進(jìn)晚餐。

>>> cars = ['bmw','audi','toyota','subaru']
>>> len(cars)
4

3-10 嘗試使用各個(gè)函數(shù):想想可存儲(chǔ)到列表中的東西,如山岳、河流、國(guó)家、城市、語(yǔ)言或你喜歡的任何東西。編寫(xiě)一個(gè)程序,在其中創(chuàng)建一個(gè)包含這些元素的列表,然后,對(duì)于本章介紹的每個(gè)函數(shù),都至少使用一次來(lái)處理這個(gè)列表。

name = ['mount everest','yellow river','beijing','china']
print(name)

print("\n臨時(shí)排序: ")
print(sorted(name))

print("\n臨時(shí)相反排序: ")
print(sorted(name,reverse=True))

print("\n按字母順序相反排序: ")
name.sort(reverse=True)
print(name)

print("\n按字母排序: ")
name.sort()
print(name)

print("\n倒著打印: ")
name.reverse()
print(name)

print("\n元素個(gè)數(shù): ")
print(len(name))

print("\n元素個(gè)數(shù): %d" % len(name))
----------------------------------------------------------
['mount everest', 'yellow river', 'beijing', 'china']

臨時(shí)排序:
['beijing', 'china', 'mount everest', 'yellow river']

臨時(shí)相反排序:
['yellow river', 'mount everest', 'china', 'beijing']

按字母順序相反排序:
['yellow river', 'mount everest', 'china', 'beijing']

按字母排序:
['beijing', 'china', 'mount everest', 'yellow river']

倒著打印:
['yellow river', 'mount everest', 'china', 'beijing']

元素個(gè)數(shù):
4

元素個(gè)數(shù): 4

網(wǎng)站欄目:Python基礎(chǔ)列表介紹、使用
網(wǎng)址分享:http://bm7419.com/article34/pcopse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、移動(dòng)網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、云服務(wù)器、虛擬主機(jī)手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)