課堂筆記06-列表和字典

課堂筆記

1. 序列(sequence)

1.1 基本概念

• 序列是Python中最基本的一種數據結構。序列用於保存一組有序的數據,所有的數據在序列當中都有一個唯一的位置(索引)並且序列中的數據會按照添加的順序來分配索引
• 數據結構指計算機中數據存儲的方式

1.2 序列的分類

• 可變序列(序列中的元素可以改變):例如 列表(list)字典(dict)
• 不可變序列(序列中的元素不能改變):例如 字符串(str)元組(tuple)

2. 列表(list)

• 列表是Python中的一個對象
• 列表的作用
• 列表中可以保存多個有序的數據
• 列表是用來存儲對象的對象

2.1 列表的使用

• 列表的創建:通過[]來創建一個空列表

2.2 切片

• 切片是指從現有列表中獲得一個子列表
• 通過切片來獲取指定的元素
• 語法: 列表[起始 : 結束 : 步長]
• 通過切片獲取元素時,會包括起始位置的元素,不會包括結束位置的元素
• 起始位置和結束位置的索引可以不寫
• 如果省略結束位置, 則會從當前的開始位置一直截取到最後
• 如果省略開始位置, 則會從第一個元素截取到結束的元素,但是不包括結束的元素
• 如果開始位置和結束位置都省略, 則則會從第一個元素開始截取到最後一個元素
• 步長表示每次獲取元素的間隔,默認是1(可以省略不寫)
• 步長不能是0,但可以是是負數

取出小芳
students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']]
print(students[1][3])
取出小蘭
students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']]
print(students[1][1])
列表和字典改值
list1 = ['小明','小紅','小剛','小美']
list1[1] = '小藍'
print(list1)

dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)


3. 通用操作

• + 和 *
• + 可以將兩個列表拼接成一個列表
• * 可以將列表重複指定的次數 (注意2個列表不能夠做乘法,要和整數做乘法運算)
• in 和 not in
• in用來檢查指定元素是否在列表當中
• not in 用來檢查指定元素是否不在列表當中
• len() 獲取列表中元素的個數
• max() 獲取列表中最大值
• min() 獲取列表中最小值
• list.index(x[, start[, end]])
• 第一個參數 獲取指定元素在列表中的位置
• 第二個參數 表示查找的起始位置
• 第三個參數 表示查找的結束位置
• list.count(x) 統計指定元素在列表中出現的個數

4. 修改列表

• 通過切片來修改(起始就是給切片的內容重新賦值,但是賦值的內容必須是一個序列)
• 當設置了步長時,序列中元素的個數必須和切片中元素的個數保持一致
• 通過切片來刪除元素
• del list[起始 : 結束]
• list = []

5. 列表的方法

• append() 像列表的最後添加一個元素
• insert(arg1,arg2) 像列表指定位置插入一個元素 參數1:要插入的位置 參數2:要插入的元素
• extend(iterable) 使用一個新的序列來擴展當前序列(它會將該序列的中元素添加到列表中) 參數需要傳遞一個序列
• pop() 根據索引刪除並返回指定元素
• remove() 刪除指定元素 (如果相同值的元素有多個,只會刪除第一個)
• reverse() 翻轉列表
• sort(key=None,reverse=False) 用來對列表中的元素進行排序 reverse:True反序;False 正序

列表刪除
students = ['小明','小紅','小剛','小美']
del students[1]
print(students)

列表增加
students = ['小明','小紅','小剛']
students.append('小美')
print(students)

列表切片
students = ['小明','小紅','小剛']
print(students[2])
print(students[2:])

students = ['小明','小紅','小剛']
print(students[0:2])

list2 = [5,6,7,8,9]
print(list2[:])
print(list2[2:])
print(list2[:2])
print(list2[1:3])
print(list2[2:4])

6. 遍歷列表

6.1 for循環

• 通過for循環來遍歷列表
語法
for 變量 in 序列(遍歷的規則):
代碼塊
• 注意: for循環的代碼塊會執行多次,序列中有幾個元素就會執行幾次。每執行一次就會將序列中的一個元素賦值給變量,所以我們可以通過變量來獲取列表中的元素

list=['小明','18','1.70']
for i in list:
    print(i )

6.2 range(start, stop[, step])

參數說明
• ·start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價於range(0, 5);
• stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
• step:步長,默認爲1。例如:range(0, 5) 等價於 range(0, 5, 1)

7.字典

# 如果==左右兩邊相等,值爲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)

## 字典修改和新增

scores = {'小明':95,'小紅':90,'小剛':90}
del scores['小剛']
scores['小剛']=92
scores['小美']=85
print(scores)

list1 = ['小明','小紅','小剛','小美']
list1[1] = '小藍'
print(list1)

dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)

album = {'周杰倫':'七里香','王力宏':'心中的日月'}
del album['周杰倫']
print(album)

album['周杰倫'] = '十一月的蕭邦'
print(album)
print(album['周杰倫'])

## 列表和字典長度

students = ['小明','小紅','小剛']
scores = {'小明':95,'小紅':90,'小剛':90}
print(len(students))
print(len(scores))

## 列表嵌套列表

students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']]
print(students[1][3])

## 字典嵌套字典

scores = {
    '第一組':{'小明':95,'小紅':90,'小剛':100,'小美':85},
    '第二組':{'小強':99,'小蘭':89,'小偉':93,'小芳':88}
    }
print(scores['第二組']['小芳'])

scores = {
    '第一組':{'小明':95,'小紅':90,'小剛':100,'小美':85},
    '第二組':{'小強':99,'小蘭':89,'小偉':93,'小芳':88}
    }
print(scores['第一組']['小剛'])

## 字典和列表相互嵌套

# 最外層是大括號,所以是字典嵌套列表,先找到字典的鍵對應的列表,再判斷列表中要取出元素的偏移量
students = {
    '第一組':['小明','小紅','小剛','小美'],
    '第二組':['小強','小蘭','小偉','小芳']
    }
print(students['第一組'][3])
#取出'第一組'對應列表偏移量爲3的元素,即'小美'

# 最外層是中括號,所以是列表嵌套字典,先判斷字典是列表的第幾個元素,再找出要取出的值相對應的鍵
scores = [
    {'小明':95,'小紅':90,'小剛':100,'小美':85},
    {'小強':99,'小蘭':89,'小偉':93,'小芳':88}
    ]
print(scores[1]['小強'])
#先定位到列表偏移量爲1的元素,即第二個字典,再取出字典裏鍵爲'小強'對應的值,即99。


students = {
    '第一組':['小明','小紅','小剛','小美'],
    '第二組':['小強','小蘭','小偉','小芳']
    }
scores = [
    {'小明':95,'小紅':90,'小剛':100,'小美':85},
    {'小強':99,'小蘭':89,'小偉':93,'小芳':88}
    ]   
print(students['第一組'][2])
print(scores[0]['小剛'])


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章