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