python的基礎03 列表list
阿新 • • 發佈:2019-01-05
san lec 而不是 end python dem div 一個 form
3.列表
- 列表由一系列按特定順序排列的元素組成,list是一種有序的集合,可以隨時添加和刪除其中的元素
- 列表的格式:列表是用方括號[]來表示,中間的元素用逗號(,)隔開
# 簡單的列表 bicycles = [‘trek‘,‘cannondale‘,‘Redline‘,‘specialized‘] print(bicycles) # 打印的時候會連[]也打印出來[‘trek‘, ‘cannondale‘, ‘Redline‘, ‘specialized‘]
3.1.1 訪問列表的元素
- 要訪問列表的任何元素,可指出列表的名稱,在指出元素的索引,並將其放在方括號[]內
# 當我們訪問列表的元素時,python只會返回列表的元素,而不會包含中括號或者引號 print(bicycles[0]) print(len(bicycles)) print(bicycles[3].title()) # 打印出索引為3的元素,並將它的首字母改為大寫
trek
4
Specialized
3.1.2 索引的位置
- 在python裏面,列表的第一個元素的位置是0,而不是1;
- 最後一個元素的索引是n-1或者直接使用-1來表示;
# 反問列表bicycles的第2個和第3個元素 print(bicycles[1].upper())print(bicycles[2].lower())
CANNONDALE
redline
3.1.3 使用列表中的值
# 使用拼接來創建一條消息 bicycles = ["trek",‘cannondale‘,‘redline‘,"specialized"] message = "My first bicycle was a" + ‘ ‘ + bicycles[2].title() + ‘.‘ print(message)
My first bicycle was a Redline.
動手試一試
# 3-1 姓名: 將一些朋友的姓名存儲在一個列表中,並將其命名為 names。依次訪問該列表中的每個元素,從而將每個朋友的姓名都打印出來。names = [‘Bob‘,‘lucy‘,‘mary‘] print(names[0]) print(names[-2]) print(names[-1].title())
Bob
lucy
Mary
# 3-2 問候語: 繼續使用練習 3-1 中的列表,但不打印每個朋友的姓名,而為每人打印一條消息。每條消息都包含相同的問候語,但擡頭為相應朋友的姓名。 print(names[0],‘,‘,‘讓我們一起去吃飯吧!‘) print(names[1],‘,‘,"讓我們一起去吃飯吧!") print(names[-1].title(),‘,‘,‘讓我們一起去吃飯吧!‘)
Bob , 讓我們一起去吃飯吧!
lucy , 讓我們一起去吃飯吧!
Mary , 讓我們一起去吃飯吧!
3.2 修改丶添加和刪除元素
3.2.1 修改列表元素
- 要修改列表元素,可指定列表名和要修改的元素的索引,在指定該元素的新值
motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) motocycles[0] = "ducati" print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
[‘ducati‘, ‘yamaha‘, ‘suzuki‘]
3.2.2 在列表中添加元素
- 1.在列表末尾添加元素我們使用append()
- 2.使用方法insert()在任何位置添加新元素
# 使用append添加元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) motocycles.append("ducati") print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
[‘honda‘, ‘yamaha‘, ‘suzuki‘, ‘ducati‘]
# 使用insert()添加元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) motocycles.insert(0,‘ducati‘) # 列表名.insert(索引位置,添加的元素) print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
[‘ducati‘, ‘honda‘, ‘yamaha‘, ‘suzuki‘]
3.2.3 從列表中刪除元素
- 知道索引位置刪除列表元素
- 1.知道需要刪除元素的索引,使用del語句刪除元素,被刪除的值我們將無法再訪問
- 2.使用方法pop()刪除元素,只需要在()內指定被刪除的元素的索引位置,被刪除的值我們可以再度使用.如果括號內沒有索引位置則刪除的是列表最後的一個元素.
# del語句刪除列表元素 del 列表名(索引位置) motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) del motocycles[0] print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
[‘yamaha‘, ‘suzuki‘]
# 方法pop()刪除列表末尾的元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) poped_motocycles = motocycles.pop() # 把刪除的元素存儲在變量poped_motocycles裏面 print(motocycles) print(poped_motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
[‘honda‘, ‘yamaha‘]
suzuki
# 使用方法pop()刪除列表指定位置的元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) first_motocycles = motocycles.pop(0) # 把索引為0的元素刪除並把值存放在變量first_motocycles print("The first motocycles I owned was a" +‘ ‘ + first_motocycles.title())
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
The first motocycles I owned was a Honda
- 根據值刪除元素
- 不知道元素的索引,但是知道元素的值,我們使用方法remove()
# 從列表中刪除元素為ducati motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘,‘ducati‘] print(motocycles) motocycles.remove(‘ducati‘) print(motocycles) # 使用remove刪除的值也可以繼續接著使用 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘,‘ducati‘] print(motocycles) too_motocycles = ‘ducati‘ motocycles.remove(too_motocycles) print(motocycles) print("A" + ‘ ‘ + too_motocycles + "is too expensive for me.")
[‘honda‘, ‘yamaha‘, ‘suzuki‘, ‘ducati‘]
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
[‘honda‘, ‘yamaha‘, ‘suzuki‘, ‘ducati‘]
[‘honda‘, ‘yamaha‘, ‘suzuki‘]
A ducatiis too expensive for me.
動手試一試
‘‘‘3-4 嘉賓名單:如果你可以邀請任何人一起共進晚餐,請創建一個列表,其中包含至少3個你想邀請的人;然後,使用這個列表打印消息,邀請這些人來與你共進晚餐。‘‘‘ dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] print(dinners[0] + "," + ‘讓我們一起吃晚餐吧!‘) print(dinners[1] + "," + "讓我們一起共進晚餐吧!") print(dinners[-1] + ‘,‘ + "讓我們一起吃晚餐吧!") dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] print(str(dinners) + ‘,‘,‘讓我們一起吃晚餐吧!‘)
Li_yang,讓我們一起吃晚餐吧!
Wu_yong,讓我們一起共進晚餐吧!
Zhang_san,讓我們一起吃晚餐吧!
[‘Li_yang‘, ‘Wu_yong‘, ‘Zhang_san‘], 讓我們一起吃晚餐吧!
‘‘‘3-5 修改嘉賓名單:你剛得知有位嘉賓無法赴約,因此需要另外邀請一位嘉賓。 ? 以完成練習 3-4 時編寫的程序為基礎,在程序末尾添加一條 print 語句,指出哪 位嘉賓無法赴約。‘‘‘ dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] print(str(dinners) + ‘,‘,‘讓我們一起吃晚餐吧!‘) print("我剛剛知道" + dinners[1]+ "不能來了") # ? 修改嘉賓名單,將無法赴約的嘉賓的姓名替換為新邀請的嘉賓的姓名。 dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] dinners[1] = ‘Li_si‘ print(dinners) # ? 再次打印一系列消息,向名單中的每位嘉賓發出邀請 print("{0}".format(dinners) + "讓我們一起吃晚飯吧")
[‘Li_yang‘, ‘Wu_yong‘, ‘Zhang_san‘], 讓我們一起吃晚餐吧!
我剛剛知道Wu_yong不能來了
[‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘]
[‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘]讓我們一起吃晚飯吧
‘‘‘3-6 ? 以完成練習 3-4 或練習 3-5 時編寫的程序為基礎,在程序末尾添加一條 print 語 句,指出你找到了一個更大的餐桌‘‘‘ dinners = [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] for dinner in dinners: print("{0}".format(dinner) + ‘,‘ + "讓我們一起吃晚餐吧!") print("我找到了一張更大的餐桌") # 使用 insert()將一位新嘉賓添加到名單開頭. dinners = [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] print(dinners) dinners.insert(0,‘Wang_wu‘) print(dinners) # ? 使用 insert()將另一位新嘉賓添加到名單中間。 dinners.insert(2,‘Wu_yong‘) print(dinners) # ? 使用 append()將最後一位新嘉賓添加到名單末尾。 dinners.append(‘Fang_jiu‘) print(dinners)
Li_yang,讓我們一起吃晚餐吧!
Li_si,讓我們一起吃晚餐吧!
Zhang_san,讓我們一起吃晚餐吧!
我找到了一張更大的餐桌
[‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘]
[‘Wang_wu‘, ‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘]
[‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘]
[‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘, ‘Fang_jiu‘]
# 3-7 縮減名單:你剛得知新購買的餐桌無法及時送達,因此只能邀請兩位嘉賓。 ‘‘‘ ? 使用 pop()不斷地刪除名單中的嘉賓,直到只有兩位嘉賓為止。每次從名單中彈 出一位嘉賓時,都打印一條消息,讓該嘉賓知悉你很抱歉,無法邀請他來共進 晚餐。‘‘‘ dinners = [‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘, ‘Fang_jiu‘] dinners_01 = dinners.pop() print(dinners_01 + ‘,‘ + "我無法邀請你來吃飯了!") dinners_02 = dinners.pop(0) print(dinners_02 + ‘,‘ + "我無法邀請你來吃飯了!") dinners_03 = dinners.pop(1) print(dinners_03 + ‘,‘ + "我無法邀請你來吃飯了!") dinners_04 = dinners.pop(2) print(dinners_04 + ‘,‘ + "我無法邀請你來吃飯了!") print(dinners) # ? 對於余下的兩位嘉賓中的每一位,都打印一條消息,指出他依然在受邀人之列。 dinners01 = dinners[0] dinners02 = dinners[1] print(dinners01 + ‘,‘ + "你依然在受邀之列") print(dinners02 + ‘,‘ + "你依然在受邀之列") # ? 使用 del 將最後兩位嘉賓從名單中刪除,讓名單變成空的。打印該名單,核實程序結束時名單確實是空的 del dinners[0] del dinners[-1] print(dinners)
Fang_jiu,我無法邀請你來吃飯了!
Wang_wu,我無法邀請你來吃飯了!
Wu_yong,我無法邀請你來吃飯了!
Zhang_san,我無法邀請你來吃飯了!
[‘Li_yang‘, ‘Li_si‘]
Li_yang,你依然在受邀之列
Li_si,你依然在受邀之列
[]
3.3 組織列表
- 1.使用方法sort()對列表進行永久排序
- 2.使用函數sorted()對列表進行臨時排序
# sort()對列表排序 cars = [‘bmw‘,‘audi‘,‘toyota‘,‘subaru‘] print(cars) cars.sort() print(cars) # 對sort()傳入參數使列表按與字母順序相反的順序排列 cars.sort(reverse = True) print(cars) cars.sort(reverse = False) print(cars)
[‘bmw‘, ‘audi‘, ‘toyota‘, ‘subaru‘]
[‘audi‘, ‘bmw‘, ‘subaru‘, ‘toyota‘]
[‘toyota‘, ‘subaru‘, ‘bmw‘, ‘audi‘]
[‘audi‘, ‘bmw‘, ‘subaru‘, ‘toyota‘]
# 使用sorted()對列表進行排序 cars = [‘bmw‘,‘audi‘,‘toyota‘,‘subaru‘] sorted_cars = sorted(cars) print(cars) print(sorted_cars)
[‘bmw‘, ‘audi‘, ‘toyota‘, ‘subaru‘]
[‘audi‘, ‘bmw‘, ‘subaru‘, ‘toyota‘]
3.3.3 倒著打印列表
- 要反轉列表元素的排列順序,我們是使用方法reverse()
# 倒著打印列表 cars = [‘bmw‘,‘audi‘,‘toyota‘,‘subaru‘] cars.reverse() print(cars)
[‘subaru‘, ‘toyota‘, ‘audi‘, ‘bmw‘]
3.3.4 確定列表的長度
- 使用len()可以確定列表有多少個元素
cars = [‘bmw‘,‘sudi‘,‘toyota‘,‘subaru‘] print(len(cars))
4
動手試一試
‘‘‘3-8 放眼世界:想出至少 5 個你渴望去旅遊的地方。 ? 將這些地方存儲在一個列表中,並確保其中的元素不是按字母順序排列的。‘‘‘ toursim = [‘beijing‘,‘tokyo‘,‘usa‘,‘lijiang‘,‘kunming‘] # ? 按原始排列順序打印該列表。不要考慮輸出是否整潔的問題,只管打印原始Python 列表。 print(toursim) # ? 使用 sorted()按字母順序打印這個列表,同時不要修改它。 sorted_toursim = sorted(toursim) print(sorted_toursim) # ? 再次打印該列表,核實排列順序未變。 print(toursim) # ? 使用 sorted()按與字母順序相反的順序打印這個列表,同時不要修改它。 sorsted_toursim = sorted(toursim,reverse = True) print(sorted_toursim)
[‘beijing‘, ‘tokyo‘, ‘usa‘, ‘lijiang‘, ‘kunming‘]
[‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘]
[‘beijing‘, ‘tokyo‘, ‘usa‘, ‘lijiang‘, ‘kunming‘]
[‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘]
# ? 再次打印該列表,核實排列順序未變。 print(toursim) # ? 使用 reverse()修改列表元素的排列順序。 打印該列表, 核實排列順序確實變了。 toursim.reverse() print(toursim) # ? 使用 reverse()再次修改列表元素的排列順序。打印該列表,核實已恢復到原來的排列順序。 toursim.reverse() print(toursim) # ? 使用 sort()修改該列表,使其元素按字母順序排列。打印該列表,核實排列順序確實變了。 toursim.sort() print(toursim) # ? 使用 sort()修改該列表,使其元素按與字母順序相反的順序排列。打印該列表,核實排列順序確實變了。 toursim.sort(reverse = True) print(toursim) # 3-9 晚餐嘉賓:在完成練習 3-4~練習 3-7 時編寫的程序之一中,使用 len()打印一條消息,指出你邀請了多少位嘉賓來與你共進晚餐。 dinners = [‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘, ‘Fang_jiu‘] print(len(dinners))
[‘usa‘, ‘tokyo‘, ‘lijiang‘, ‘kunming‘, ‘beijing‘]
[‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘]
[‘usa‘, ‘tokyo‘, ‘lijiang‘, ‘kunming‘, ‘beijing‘]
[‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘]
[‘usa‘, ‘tokyo‘, ‘lijiang‘, ‘kunming‘, ‘beijing‘]
6
python的基礎03 列表list