1. 程式人生 > >python的基礎03 列表list

python的基礎03 列表list

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