第4關-精華筆記

小灰慄愛摸魚。發表於2021-05-23

課程⽬標
1. 熟練掌握列表、字典中元素的增刪改查
2. 理解列表和字典的區別
課程難點
1. 列表與字典增刪改查的異同
2. 正確使⽤切⽚,深刻理解切⽚時冒號左右數字的意義

課程重要內容
⼀、列表
語法格式
資料儲存在中括號[]⾥,⽤逗號隔開並使⽤等號賦值給列表。中括號⾥⾯的每⼀個資料
叫作“元素”。
列表中的元素是有⾃⼰明確的“位置”的,元素相同,在列表中排列順序不同,就是兩個
不同的列表。
列表中字串、整數、浮點數都可以儲存。

list1 = ['小明',17,5.2]

提取元素
偏移量:元素在列表中的編號。
偏移量是從0開始的;
列表名後加帶偏移量的中括號,就能取到相應位置的元素。
結果是⼀個元素
切⽚:⽤冒號來擷取列表元素的操作。
冒號左邊空(或者為0), :m,表示從頭取m個元素;
右邊空(或者為0),n: ,跳過前n個元素把剩下的取完;
冒號左右都有數字時,n:m,表示跳過前n個元素,取到第m個。(取出前m個元素中
除了前n個後剩下的那些)

切⽚擷取了列表的⼀部分,所以得到的結果仍然是⼀個列表。(即使只有⼀個元素,也
是在列表⾥的,要與⽤偏移量取單個元素的⽅法區別開)

students 1 = ['小明','小紅','小剛']
students[2]
# 使用偏移量提取單一元素,結果顯示:
# 小剛
print(students[2:])
# 使用切片,即使結果仍然只有一個元素,但顯示為列表:
# ['小剛']

特別地,a,b,c=students,也可以提取出列表中的元素,變數分別⽤逗號隔開,且變數
的數量與列表元素個數⼀致,⼀⼀對應,最終列表元素會分別賦值給變數,例如:

appetizer = ['話梅花生','拍黃瓜','涼拌三絲']
a,b,c = appetizer
print(a)
print(b)
print(c)
print(a,b,c)
#結果顯示為
#話梅花生
#拍黃瓜
#涼拌三絲
#話梅花生 拍黃瓜 涼拌三絲

增加/刪除元素
增加元素
列表名.append()
注意這⾥是.不是空格!append後的括號⾥只能接受⼀個引數,結果是讓列表末尾新增
⼀個元素。列表⻓度可變,理論容量⽆限,所以⽀持任意的巢狀。

list3 = [1,2]
#新增‘3’這個元素
list3.append(3)
print(list3)
#結果顯示:
#[1,2,3]
#list3.append(4,5)
list3.append([4,5])
print(list3)
# 新增[4,5]這個列表,也就是append()的引數為一個列表,也是一個引數,所以不會報錯
# 結果顯示:
# [1,2,3,[4,5]]

但是append(4,5)會報錯,因為給了兩個元素(沒有作為⼀個整體,所以算兩個引數)。
注意!!!千萬不能賦值:a=student.append(3),這樣a⾥只有None。

刪除元素
del 列表名[元素的索引] 。
注意這⾥是空格不是.!因為del是語句,是命令。
與append()函式類似,能刪除單個元素、多個元素(切⽚)、整個列表。

修改元素
使⽤偏移量修改對應位置的元素。

list1 1 = ['小明','小紅','小剛','小美']
list1[1]='小藍'
print(list1)
# 結果顯示
# ['小明','小藍','小剛','小美']

 

⼆、字典
字典所儲存的兩種資料若存在⼀⼀對應的情況,⽤字典儲存會更加⽅便。唯⼀的鍵和對
應的值形成的整體,我們就叫做【鍵值對】。鍵具備唯⼀性,⽽值可重複。
語法格式

  • 字典外層是⼤括號{},⽤等號賦值;
  • 列表中的元素是⾃成⼀體的,⽽字典的元素是由鍵值對構成的,⽤英⽂冒號連線。

有多少個鍵值對就有多少個元素。如'⼩明':95,其中我們把'⼩明'叫鍵(key),95
值(value)

  • 鍵值對間⽤逗號隔開
  • 字典中資料是隨機排列的,調動順序也不影響。

所以列表有序,要⽤偏移量定位;字典⽆序,便通過唯⼀的鍵來定位。(注:len()函式⽤於獲取資料⻓度)

students = ['小明','小紅','小剛']
scores = {'小明':95,'小紅':90,'小剛':100}
print(len(students))
print(len(scores))
#結果顯示
#3
#3
#字典的元素個數,數冒號就行了

提取元素
  字典沒有偏移量,所以在提取元素時,中括號中應該寫鍵的名稱,即字典名[字典的
鍵]。提取出來的是key對應的value,⽽不會顯示鍵的資料!

scores = {'小明': 95, '小紅': 90, '小剛': 90}
scores['小明']
# 結果顯示
# 95

增加/刪除元素
新增元素
字典名[鍵] = 值。
每次只能新增⼀個鍵值對。scores['⼩剛','⼩美']=92,85,這樣是不對的,最終會輸出
('⼩剛','⼩美':(92,85))作為⼀個鍵值對。

# 原字典
album = {'周杰倫':'七里香'}
# 新增一個鍵值對
album['林俊杰'] = '小酒窩'
# 增加後列印效果
print(album)
# 結果: {'周杰倫':'七里香','林俊杰':'小酒窩'}
# 通過鍵訪問
print(album['周杰倫'])
# 結果: 七里香

刪除元素
del 字典名[鍵]

album = {'周杰倫':'七里香','王力巨集':'心中的日月'}
del album['周杰倫']
print(album)
# 結果顯示
# {'王力巨集':'心中的日月'}

修改元素
如果不是整個鍵值對都不需要,只需要改變對應key下的value,修改就可以,不需
要del。

dict1 = {'小明':'男'}
dict1['小明'] = '女'
# 字典沒有偏移量,只能通過key找到元素位置。蔡明也是小明,嘿嘿改為"女"
print(dict1)
# 結果顯示
# {'小明': '女'}

 

三、列表與字典的巢狀
列表巢狀列表
列表中有兩個列表元素,[1]表示取第⼆個元素(列表),[2]表示取第⼆個元素中
的第三個元素(偏移量為2)。

student=[['小紅','小黃','小橙'],['小綠','小藍','小紫','小青']]
print(student[1][2])
#結果顯示為
#小紫

字典巢狀字典
字典中儲存了兩個字典,所以提取資料時只能⽤key值。

scores={'第一組':{'小明':95,'小紅':96},'第二組':{'小剛':94,'小青':99}}
print(scores['第一組']['小紅'])
#結果顯示:
#96

列表巢狀字典
從外到內開始分析,最外層是列表,因此使⽤偏移量來獲取⾥⾯到元素。 元素的資料
型別是字典。
如下: 學⽣資訊是⼀個個字典,其中包含名字班級等資訊,構造成⼀個學⽣表students列表

student_1 = {'姓名':'小明', '興趣':'籃球', '成績':'優秀', '學號': 13}
student_2 = {'姓名':'小剛', '興趣':'羽毛球', '成績': '中等', '學號': 115}
student_3 = {'姓名':'小蔡', '興趣':'乒乓球', '成績': '良好', '學號': 150}
students = [student_1, student_2, student_3]
# 每位同學的成績獲取
level_ming = students[0]['成績']
level_gang = students[1]['成績']
level_cai = students[2]['成績']                                                                                                                                                                                                                                                            

相關文章