06 - 列表
06 - 列表
1. 序列(sequence)
1.1基本概念
- 序列是Python中最基本的?種數(shù)據(jù)結(jié)構(gòu)。序列?于保存?組有序的數(shù)據(jù),所有的數(shù)據(jù)在序列當(dāng)中都有?個(gè)唯?的位置(索引)并且序列中的數(shù)據(jù)會(huì)按照添加的順序來分配索引
- 數(shù)據(jù)結(jié)構(gòu)指計(jì)算機(jī)中數(shù)據(jù)存儲(chǔ)的?式
1.2 序列的分類
- 可變序列(序列中的元素可以改變):例如 列表(list)字典(dict)
- 不可變序列(序列中的元素不能改變):例如 字符串(str)元組(tuple)
2. 列表(list)
- 列表是Python中的?個(gè)對(duì)象
- 列表的作?
- 列表中可以保存多個(gè)有序的數(shù)據(jù)
- 列表是?來存儲(chǔ)對(duì)象的對(duì)象
2.1 列表的使用
- 列表的創(chuàng)建:通過[]來創(chuàng)建?個(gè)空列表
2.2 切片
- 切?是指從現(xiàn)有列表中獲得?個(gè)?列表
- 通過切?來獲取指定的元素
- 語法: 列表[起始 : 結(jié)束 : 步?]
- 通過切?獲取元素時(shí),會(huì)包括起始位置的元素,不會(huì)包括結(jié)束位置的元素
- 起始位置和結(jié)束位置的索引可以不寫
- 如果省略結(jié)束位置, 則會(huì)從當(dāng)前的開始位置?直截取到最后
- 如果省略開始位置, 則會(huì)從第?個(gè)元素截取到結(jié)束的元素,但是不包括結(jié)束的元素
- 如果開始位置和結(jié)束位置都省略, 則則會(huì)從第?個(gè)元素開始截取到最后?個(gè)元素
- 步?表示每次獲取元素的間隔,默認(rèn)是1(可以省略不寫)
- 步?不能是0,但可以是是負(fù)數(shù)
3. 通用操作
-
加法+ 和 乘法 *
- 加法+可以將兩個(gè)列表拼接成?個(gè)列表
- 乘法*可以將列表重復(fù)指定的次數(shù) (注意2個(gè)列表不能夠做乘法,要和整數(shù)做乘 法運(yùn)算)
-
in 和 not in
-
in?來檢查指定元素是否在列表當(dāng)中
-
not in ?來檢查指定元素是否不在列表當(dāng)中
-
len() 獲取列表中元素的個(gè)數(shù)
-
max() 獲取列表中最?值
-
min() 獲取列表中最?值
-
list.index(x[, start[, end]])
- 第?個(gè)參數(shù) 獲取指定元素在列表中的位置
- 第?個(gè)參數(shù) 表示查找的起始位置
- 第三個(gè)參數(shù) 表示查找的結(jié)束位置
-
list.count(x) 統(tǒng)計(jì)指定元素在列表中出現(xiàn)的個(gè)數(shù)
4. 修改列表
- 通過切?來修改(起始就是給切?的內(nèi)容重新賦值,但是賦值的內(nèi)容必須是? 個(gè)序列)
- 當(dāng)設(shè)置了步?時(shí),序列中元素的個(gè)數(shù)必須和切?中元素的個(gè)數(shù)保持?致
- 通過切?來刪除元素
-
del list[起始 : 結(jié)束]
-
list = []
-
5. 列表的方法
-
append() 像列表的最后添加?個(gè)元素
-
insert(arg1,arg2) 像列表指定位置插??個(gè)元素 參數(shù)1:要插?的位置 參數(shù) 2:要插?的元素
-
extend(iterable) 使??個(gè)新的序列來擴(kuò)展當(dāng)前序列(它會(huì)將該序列的中元素 添加到列表中) 參數(shù)需要傳遞?個(gè)序列
-
pop() 根據(jù)索引刪除并返回指定元素
-
remove() 刪除指定元素 (如果相同值的元素有多個(gè),只會(huì)刪除第?個(gè))
-
reverse() 翻轉(zhuǎn)列表
-
sort(key=None,reverse=False) ?來對(duì)列表中的元素進(jìn)?排序
-
reverse: True反序;False 正序
6. 遍歷列表
6.1 for循環(huán)
- 通過for循環(huán)來遍歷列表
- 注意: for循環(huán)的代碼塊會(huì)執(zhí)?多次,序列中有?個(gè)元素就會(huì)執(zhí)??次。每執(zhí)? ?次就會(huì)將序列中的?個(gè)元素賦值給變量,所以我們可以通過變量來獲取列表中的元素
6.2 range(start, stop[, step])
參數(shù)說明
- start: 計(jì)數(shù)從 start 開始。默認(rèn)是從 0 開始。例如range(5)等價(jià)于 range(0, 5);
- stop: 計(jì)數(shù)到 stop 結(jié)束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
- step:步?,默認(rèn)為1。例如:range(0, 5) 等價(jià)于 range(0, 5, 1)
語法
練習(xí)
- 1.現(xiàn)在有 a = [1,2,3,4,5,6] 不通過函數(shù)的形式實(shí)現(xiàn)列表的反轉(zhuǎn)([6,5,4,3,2,1]) 并寫出推導(dǎo)過程
- 2.給用戶9次機(jī)會(huì) 猜1 - 10 個(gè)數(shù)字隨機(jī)來猜數(shù)字。如果隨機(jī)的數(shù)字和用戶輸入的數(shù)字一致則表示正確,如果不一致則表示錯(cuò)誤。最終結(jié)果要求用戶怎么也猜不對(duì)
- 3.有兩個(gè)列表 lst1 = [11, 22, 33] lst2 = [22, 33, 44]獲取內(nèi)容相同的元素
- 4.現(xiàn)在有8位老師,3個(gè)辦公室,要求將8位老師隨機(jī)的分配到三個(gè)辦公室中
- 5.現(xiàn)在有8位老師,3個(gè)辦公室,要求將8位老師隨機(jī)的分配到三個(gè)辦公室中,要求每個(gè)辦公室至少有一個(gè)老師(如果覺得上面的題不夠?qū)懙脑?#xff0c;寫這個(gè))
總結(jié)
- 上一篇: 告别20k/s,利用IDM直链下载网盘资
- 下一篇: 【Axure交互教程】图表载入效果(柱状