Python編程:從入門到實踐——第3章、列表簡介(附課後題)

一、列表定義:

列表 由一系列按特定順序排列的元素組成

>>> list = ['一','二','三','四',5]
>>> print(list)
['一', '二', '三', '四', 5]

二、列表操作:

1、訪問列表元素

#通過元素 列表名[索引] 的格式訪問
>>> list = ['one','Two','THREE',4]
>>> print(list[0])
one

#優化輸出,使用字符串方法,例如title()首字母大寫、upper()全部大寫等
>>> print(list[0].title())
One
>>> print(list[0].upper())
ONE

#訪問最後一位元素
>>> print(list[-1])
4

#使用列表值,創建一條消息
>>> food = ['banana','apple','chicken']
>>> like = "My like eat food of " + food[0].title() + " and " + food[1].title() + "."
>>> print(like)
My like eat food of Banana and Apple.

2、修改列表元素

#修改列表中索引爲0的值
>> food = ['banana','apple','chicken']
>>> food[0] = 'milk'
>>> print(food)
['milk', 'apple', 'chicken']

#append() 列表末尾添加新元素
>>> food = []
>>> food.append('bread')
>>> food.append('apple')
>>> print(food)
['bread', 'apple']

#insert() 列表中插入元素,可在列表任意位置添加新元素
>>> food = ['banana','apple','chicken']
>>> food.insert(0,'辣條')
>>> print(food)
['辣條', 'banana', 'apple', 'chicken']

#del list[index] 列表中刪除元素
>>> del food[0]
>>> print(food)
['banana', 'apple', 'chicken']

#pop(index)根據列表index刪除保存元素值
>>> language = ['Chinese','English','Korean','Japanese']
>>> pop_language = language.pop(2)
>>> print("我不太愛學習" + pop_language.title())
我不太愛學習Korean

#remove()根據元素值刪除列表元素,也可以接着使用它的值
>>> language = ['Chinese','English','Korean','Japanese']
>>> remove_langue = 'English'
>>> language.remove(remove_langue)
>>> print(language)
['Chinese', 'Korean', 'Japanese']
>>> print("I'don\'t like "+remove_langue.title()+".")
I'don't like English.

3、列表元素排列

#sort() 列表進行永久性排序
>>> letter = ['c','d','a','b']
>>> letter.sort()
>>> print(letter)
['a', 'b', 'c', 'd']

#reverse = True 參數爲相反數列排序
>>> letter.sort(reverse = True)
>>> print(letter)
['d', 'c', 'b', 'a']

#sorted(list,reverse = False) 對列表進行臨時排序
>>> letter = ['c','d','a','b']
>>> print(sorted(letter))
['a', 'b', 'c', 'd']
>>> print(letter)
['c', 'd', 'a', 'b']

#reverse() 反轉列表元素排列順序(注意:該方法反轉列表元素的排列順序)
>>> animal = ['tiger','lion','dog','cat']
>>> print(animal)
['tiger', 'lion', 'dog', 'cat']
>>> animal.reverse()
>>> print(animal)
['cat', 'dog', 'lion', 'tiger']

#len() 確定列表的長度(從1計數)
>>> animal = ['tiger','lion','dog','cat']
>>> len(animal)
4

練習題

#3-1
#姓名: 將一些朋友的姓名存儲在一個列表中,並將其命名爲names 。依次訪問該列表中的每個元素,從而將每個朋友的姓名都打印出來。
names = ['張三','李四','王五']
print(names[0])
print(names[1])
print(names[2])
#3-2
# 問候語: 繼續使用練習3-1中的列表,但不打印每個朋友的姓名,而爲每人打印一條消息。每條消息都包含相同的問候語,但擡頭爲相應朋友的姓名。
names = ['張三','李四','王五']
msg = ",你吃了麼?"
print(names[0] + msg)
print(names[1] + msg)
print(names[2] + msg)
#3-3
# 自己的列表: 想想你喜歡的通勤方式,如騎摩托車或開汽車,並創建一個包含多種通勤方式的列表。根據該列表打印一系列有關這些通勤方式的宣言,如“I would like to own a Honda motorcycle”。
types = ['騎摩托車','開汽車','徒步']
msg = "我喜歡"
for type in types:
    print(msg + type + "。")
#3-4
#嘉賓名單 :如果你可以邀請任何人一起共進晚餐(無論是在世的還是故去的),你會邀請哪些人?請創建一個列表,其中包含至少3個你想邀請的人;然後,使用這個列表打印消息,邀請這些人來與你共進晚餐。
invited_pops = ['毛爺爺','周總理','鄧爺爺']
msg = ",請來參加晚宴!"
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg)
#3-5
# 修改嘉賓名單 :你剛得知有位嘉賓無法赴約,因此需要另外邀請一位嘉賓。
#以完成練習3-4時編寫的程序爲基礎,在程序末尾添加一條print 語句,指出哪位嘉賓無法赴約。
#修改嘉賓名單,將無法赴約的嘉賓的姓名替換爲新邀請的嘉賓的姓名。
#再次打印一系列消息,向名單中的每位嘉賓發出邀請。
invited_pops = ['毛爺爺','周總理','鄧爺爺']
msg = ",請來參加晚宴!"
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg + '\n')

print(invited_pops[0] + ",臨時有事,無法參加晚宴。\n")

invited_pops[0] = '孫爺爺'
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg)
#3-6
# 添加嘉賓 :你剛找到了一個更大的餐桌,可容納更多的嘉賓。請想想你還想邀請哪三位嘉賓。
#以完成練習3-4或練習3-5時編寫的程序爲基礎,在程序末尾添加一條print 語句,指出你找到了一個更大的餐桌。
#使用insert() 將一位新嘉賓添加到名單開頭。
#使用insert() 將另一位新嘉賓添加到名單中間。
#使用append() 將最後一位新嘉賓添加到名單末尾。
#打印一系列消息,向名單中的每位嘉賓發出邀請。
invited_pops = ['毛爺爺','周總理','鄧爺爺']
msg = ",請來參加晚宴!"
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg + '\n')

print(invited_pops[0] + ",臨時有事,無法參加晚宴。\n")

invited_pops[0] = '孫爺爺'
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg + "\n")

print("已預約成功能夠容納更多人的餐桌。\n")

invited_pops.insert(0,'華盛頓')
#計算當前列表長度,整除獲取中間位置
middle_popnum = len(invited_pops) // 2
invited_pops.insert(middle_popnum,'卓別林')
invited_pops.append('馬克思')
for invited_pop in invited_pops:
    print(invited_pop + msg)
#3-7
# 縮減名單 :你剛得知新購買的餐桌無法及時送達,因此只能邀請兩位嘉賓。
#以完成練習3-6時編寫的程序爲基礎,在程序末尾添加一行代碼,打印一條你只能邀請兩位嘉賓共進晚餐的消息。
#使用pop() 不斷地刪除名單中的嘉賓,直到只有兩位嘉賓爲止。每次從名單中彈出一位嘉賓時,都打印一條消息,讓該嘉賓知悉你很抱歉,無法邀請他來共進
#晚餐。
#對於餘下的兩位嘉賓中的每一位,都打印一條消息,指出他依然在受邀人之列。
#使用del 將最後兩位嘉賓從名單中刪除,讓名單變成空的。打印該名單,覈實程序結束時名單確實是空的。
invited_pops = ['毛爺爺','周總理','鄧爺爺']
msg = ",請來參加晚宴!"
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg + '\n')

print(invited_pops[0] + ",臨時有事,無法參加晚宴。\n")

invited_pops[0] = '孫爺爺'
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg + "\n")

print("已預約成功能夠容納更多人的餐桌。\n")

invited_pops.insert(0,'華盛頓')
#計算當前列表長度,整除獲取中間位置
middle_popnum = len(invited_pops) // 2
invited_pops.insert(middle_popnum,'卓別林')
invited_pops.append('馬克思')
for invited_pop in invited_pops:
    print(invited_pop + msg)

print("\n由於餐桌無法及時到達,現在只能邀請2位嘉賓參加晚宴!!!\n")
#循環判斷列表長度是否=2只剩2位,需要將長度判斷放在循環內,每次重新獲取長度,否則會異常
while True:
    invited_pops_num = len(invited_pops)
    if invited_pops_num == 2:
        break
    else:
        delete_pop = invited_pops.pop()
        print(delete_pop + ",很抱歉,餐桌太小,無法邀請您參加晚宴。")

for invited_pop in invited_pops:
    print(invited_pop + msg)
#循環判斷列表長度是否爲0,不爲0時,刪除長度-1的下標元素
while True:
    invited_pops_num = len(invited_pops)
    if invited_pops_num == 0:
        break
    else:
        del invited_pops[invited_pops_num - 1]
print(invited_pops)
#3-8
#放眼世界 :想出至少5個你渴望去旅遊的地方。
#將這些地方存儲在一個列表中,並確保其中的元素不是按字母順序排列的。
#按原始排列順序打印該列表。不要考慮輸出是否整潔的問題,只管打印原始Python列表。
#使用sorted() 按字母順序打印這個列表,同時不要修改它。
#再次打印該列表,覈實排列順序未變。
#使用sorted() 按與字母順序相反的順序打印這個列表,同時不要修改它。
#再次打印該列表,覈實排列順序未變。
#使用reverse() 修改列表元素的排列順序。打印該列表,覈實排列順序確實變了。
#使用reverse() 再次修改列表元素的排列順序。打印該列表,覈實已恢復到原來的排列順序。
#使用sort() 修改該列表,使其元素按字母順序排列。打印該列表,覈實排列順序確實變了。
#使用sort() 修改該列表,使其元素按與字母順序相反的順序排列。打印該列表,覈實排列順序確實變了。
travel_locals = ['shanghai','london','russia','paris','france']
#原始列表打印
print(travel_locals)
#使用sorted() 按字母順序打印列表
print(sorted(travel_locals))
#再次打印該列表,覈實排列順序未變。
print(travel_locals)
#使用sorted() 按與字母順序相反的順序打印這個列表,同時不要修改它。
print(sorted(travel_locals,reverse=True))
#再次打印該列表,覈實排列順序未變。
print(travel_locals)
#使用reverse() 修改列表元素的排列順序。打印該列表,覈實排列順序確實變了。
print(travel_locals.reverse())
#使用reverse() 再次修改列表元素的排列順序。打印該列表,覈實已恢復到原來的排列順序。
print(travel_locals.reverse())
#使用sort() 修改該列表,使其元素按字母順序排列。打印該列表,覈實排列順序確實變了。
print(travel_locals.sort())
#使用sort() 修改該列表,使其元素按與字母順序相反的順序排列。打印該列表,覈實排列順序確實變了。
print(travel_locals.sort())
#3-9
#晚餐嘉賓 :在完成練習3-4~練習3-7時編寫的程序之一中,使用len() 打印一條消息,指出你邀請了多少位嘉賓來與你共進晚餐。
invited_pops = ['毛爺爺','周總理','鄧爺爺']
msg = ",請來參加晚宴!"
print("我共邀請了" + str(len(invited_pops)) + "位,參加宴會。\n")
print(invited_pops[0] + msg)
print(invited_pops[1] + msg)
print(invited_pops[2] + msg)
#3-10 
#嘗試使用各個函數 :想想可存儲到列表中的東西,如山嶽、河流、國家、城市、語言或你
#喜歡的任何東西。編寫一個程序,在其中創建一個包含這些元素的列
#表,然後,對於本章介紹的每個函數,都至少使用一次來處理這個列表。
略.......上面的練習已經包含,這個我沒費時間練習
#3-11 
#有意引發錯誤 :如果你還沒有在程序中遇到過索引錯誤,就嘗試引發一個這種錯誤。在你
#的一個程序中,修改其中的索引,以引發索引錯誤。關閉程序前,務必消除這個錯誤。
已經遇到過並處理,該練習省略
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章