二、python基礎(列表、數據類型:字典、列表和字典的異同)
1、列表
1)什么是列表
2)從列表提取單個元素
# 偏移量。列表中的各個元素,好比教室里的某排學生那樣,是有序地排列的,也就是說,每個元素都有自己的位置編號(即偏移量)。
# 1.偏移量是從0開始的,而非我們習慣的從1開始;2.列表名后加帶偏移量的中括號,就能取到相應位置的元素。
students = ['小九','小八','小七','小六','小五','小四','小三','老二','老大'] print(students[3]) >>>小六

students = ['小九','小八','小七','小六','小五','小四','小三','老二','老大'] print(students[3]) # 提取字典中的第三個元素,從0開始數,往右數第三個元素:“小六” # >>>小六
3)從列表提取多個元素
# 這種用冒號來截取列表元素的操作叫作切片,顧名思義,就是將列表的某個片段拿出來處理。這種切片的方式可以讓我們從列表中取出多個元素。
list2 = [5,6,7,8,9] print(list2[:]) # 打印出[5, 6, 7, 8, 9] print(list2[2:]) # 打印出[7, 8, 9] print(list2[:2]) # 打印出[5, 6] print(list2[1:3]) # 打印出[6, 7] print(list2[2:4]) # 打印出[7, 8]
# 列表切片口訣:冒號左邊空,就要從偏移量為0的元素開始取;右邊空,就要取到列表的最后一個元素。后半句:冒號左邊數字對應的元素要拿,右邊的不動(可再回顧下代碼)。
# 偏移量取到的是列表中的元素,而切片則是截取了列表的某部分,所以還是列表 students = ['小九','小八','小七','小六','小五','小四','小三','老二','老大'] print(students[2:4]) print(students[2]) >>>['小七', '小六'] 小七
4)給列表增加/刪除元素
增加元素
# 請運行以下代碼:報錯后,可讀一下報錯信息,然后將第6行注釋掉再運行。 list3 = [1,2] list3.append(3)
# 注意格式是:列表名.append()
# append后的括號里只能接受一個參數 print(list3) #list3.append(4,5) list3.append([4,5])
# append函數並不生成一個新列表,而是讓列表末尾新增一個元素。而且,列表長度可變,理論容量無限,所以支持任意的嵌套。 print(list3) >>>[1, 2, 3] [1, 2, 3, [4, 5]]
刪除元素
students = ['小明','小紅','小剛','小美'] del students[1] print(students) >>>['小明', '小剛', '小美'] # del語句非常方便,既能刪除一個元素,也能一次刪除多個元素(原理和切片類似,左取右不取)。
2、字典
1)什么是字典
# 字典和列表有3個地方是一樣的:1.有名稱;2.要用=賦值;3.用逗號作為元素間的分隔符。 # 而不一樣的有兩處:1.列表外層用的是中括號[ ],字典的外層是大括號{ };2.列表中的元素是自成一體的,而字典的元素是由一個個鍵值對構成的,用英文冒號連接。如'小明':95,其中我們把'小明'叫鍵(key),95叫值(value)。 students = ['小明','小紅','小剛'] scores = {'小明':95,'小紅':90,'小剛':90} # 唯一的鍵和對應的值形成的組合,我們就叫做【鍵值對】,上述字典就有3個【鍵值對】:'小明':95、'小紅':90、'小剛':90
# 強調:字典中的鍵具備唯一性,而值可重復。也就是說字典里不能同時包含兩個'小明'的鍵,但卻可以有兩個同為90的值。
# 如果不想口算,我們可以用len()函數來得出一個列表或者字典的長度(元素個數),括號里放列表或字典名稱。 students = ['小明','小紅','小剛'] scores = {'小明':95,'小紅':90,'小剛':90} print(len(students)) print(len(scores)) >>>3 3
2)從字典中提取元素
# 字典的索引,和列表通過偏移量來索引不同,字典靠的是鍵。 scores = {'小明': 95, '小紅': 90, '小剛': 90} print(scores['小明']) >>>95 # 這便是從字典中提取對應的值的用法。和列表相似的是要用[ ],不過因為字典沒有偏移量,所以在中括號中應該寫鍵的名稱,即字典名[字典的鍵]。
3)給字典增加/刪除元素
album = {'周傑倫':'七里香','王力宏':'心中的日月'} del album['周傑倫'] print(album) album['周傑倫'] = '十一月的蕭邦' print(album) print(album['周傑倫']) >>> {'王力宏': '心中的日月'} {'王力宏': '心中的日月', '周傑倫': '十一月的蕭邦'} 十一月的蕭邦 # 刪除字典里鍵值對的代碼是del語句del 字典名[鍵],而新增鍵值對要用到賦值語句字典名[鍵] = 值。
3、列表和字典的異同
1)不同點:
- 列表有序,要用偏移量定位;字典無序,便通過唯一的鍵來取值。
- 列表中的元素是有自己明確的“位置”的,所以即使看似相同的元素,只要在列表所處的位置不同,它們就是兩個不同的列表。我們來看看代碼:
# 如果==左右兩邊相等,值為True,不相等則為False。 print(1 == 1) # 1等於1,所以值為True print(1 == 2) # 1不等於2,所以為False students1 = ['小明','小紅','小剛'] students2 = ['小剛','小明','小紅'] print(students1 == students2) scores1 = {'小明':95,'小紅':90,'小剛':100} scores2 = {'小剛':100,'小明':95,'小紅':90} print(scores1 == scores2) >>> True False False True
2)共同點:
- 在列表和字典中,如果要修改元素,都可用賦值語句來完成。看一下代碼:
list1 = ['小明','小紅','小剛','小美'] list1[1] = '小藍' print(list1) dict1 = {'小明':'男'} dict1['小明'] = '女' print(dict1) >>>['小明', '小藍', '小剛', '小美'] {'小明': '女'}
- 支持任意嵌套。除之前學過的數據類型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。
# 列表提取元素 students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']] print(students[1][3]) >>>小芳 # 字典提取鍵 scores = { '第一組':{'小明':95,'小紅':90,'小剛':100,'小美':85}, '第二組':{'小強':99,'小蘭':89,'小偉':93,'小芳':88} } print(scores['第二組']['小芳']) >>>88
# 列表和字典嵌套的情況下,提取元素: students = { '第一組':['小明','小紅','小剛','小美'], '第二組':['小強','小蘭','小偉','小芳'] } scores = [ {'小明':95,'小紅':90,'小剛':100,'小美':85}, {'小強':99,'小蘭':89,'小偉':93,'小芳':88} ] print(students['第一組'][2]) print(scores[0]['小剛']) >>>小剛 100
作業:
1、
# 把列表list1中的'love'取出來,並打印出來。 list1 = [{'嫉妒':'envy'},{'恨':'hatred'},{'愛':'love'}] print(list1[2]['愛']) print(list1[1]['恨']) # 把字典dict1中的'love'取出來,並打印出來。 dict1 = {1:['cake','scone','puff'],2:['London','Bristol','Bath'],3:['love','hatred','envy']} print(dict1[3][0]) # 提取A tuple1 = ('A','B') list2 = [('A','B'),('C','D'),('E','F')] print(tuple1[0]) print(list2[0][0]) >>> love hatred love A A
2、
# 請你通過所學知識,把列表中的“狼”取出來,並打印出來。 townee = [ {'海底王國':['小美人魚''海之王''小美人魚的祖母''五位姐姐'],'上層世界':['王子','鄰國公主']}, '丑小鴨','堅定的錫兵','睡美人','青蛙王子', [{'主角':'小紅帽','配角1':'外婆','配角2':'獵人'},{'反面角色':'狼'}] ] print(townee[5][1]['反面角色']) >>> 狼