目錄:
- 一、列表
- 1、列表推導式的基本格式
- 2、執行流程
- 2、推導練習
- 二、元組
- 1、元組的基本格式
- 2、訪問元組
- 3、元組的合併和重複
- 4、訪問多維元組
- 5、使用多個變量接受元組中的值
- 6、修改元組
- 7、元組一個逗號的魅力
- 8、tuple()函數
- 9、元組中的方法
- 10、遍歷元組、元組中的方法
- 11、元組的應用場景
- 三、字典
- 1、什麼是字典
- 2、創建字典的兩種方式
- 3、字典的方法
- 4、字典的常見操作
- 四、集合
- 1、什麼是集合
- 2、集合的操作(增刪改查)
- 3、集合的數學運算
- 4、集合的運用場景
整理不易,各位看官,點個贊收藏、關注必回關、QAQ、您的點贊是我更新的最大動力!
1. 推導式定義 |
---|
推導式,就是設置了一定條件的一個 Python 表達式,可以根據表達式自動推導生成對應 的 Python 對象 通常情況下根據生成對象的不同 推導式區分爲: 列表推導式,集合推導式,字典推導式 |
2.爲什麼要用推導式 |
---|
推導式可以包含基本的處理條件和循環結構,並且可以讓循環結構進行嵌套完成浮渣的操作,能在代碼的語法上對原來繁瑣的代碼進行優化,同時提高了代碼的可讀性,所以我們使用推導式 |
3.什麼時候用推導式 |
---|
如果按照條件生存少量數據的列表/集合/字典,可以使用推導式進行操作,將數據生成後再程序的變量中,但是一旦涉及到大量數據操作的時候-禁止使用 |
一、列表
- 列表推導式(list comprehension)是利用其它類表創建新列表的一種方式
- 工作原理類似 for 循環,可對得到的元素進行轉換或者篩選
1、列表推導式的基本格式
- 變量名=[表達式 for 變量 in 列表] 或者
- 變量名= [表達式 for 變量 in 列表 if 條件]
2、執行流程
- 遍歷出列表中的內容給變量,表達式根據變量值進行邏輯運算
或者遍歷列表中的內容給變量,然後進行判斷,符合的值在給表達式
3、推導練習
練習1:將 lst 中每一個元素進行平方後放入到一個新列表中
lst = [1, 2, 3, 4, 5]
第一種方式:
第二種方式:使用 函數
練習 2.求出 lst 中是奇數的值,然後放入到一個新列表中
練習 3.求列表中所有大於 2 的偶數進行平方計算
練習 4.將一個嵌套列表轉換成一個一維列表
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
轉換成:lst2=[1, 2, 3, 4, 5, 6, 7, 8, 9]
使用列表推導式
使用普通嵌套 for 循環
練習 5:現在有一列表 lst = [[1,2,3],[4,5,6],[7,8,9]]要求出 1/4/7 和 1/5/9 元素,思考如何取 出
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
使用 for 循環
#1,4,7
#1,5,9
使用列表推導式
二、元組
1、元組的基本格式
- 元組是一個不可修改的,元素以逗號分隔的以小括號包圍的有序序列
- 格式: 變量名 = (元素1、元素2、…)
練習:創建元組並打印元組內容和類型
2、訪問元組
訪問元組和訪問列表一樣,都可以使用索引和切片來獲取元素
練習1:通過索引獲取‘ls’元素
練習2:使用for循環獲取所有元素
練習3:使用切片獲取(‘ls’,’zs’)子元組
3、元組的合併和重複
因爲元組也是有序的序列,因此支持合併“+”和重複“*”
4、訪問多維元組
多維元組:元組中的元素還是元組
練習:獲取元組中的‘張飛’元素
5、使用多個變量接受元組中的值
格式: 變量 1,變量 2,…=(元素 1,元素 2,…)
6、修改元組
說明:Python 中不允許修改元組的數據,包括不能刪除其中的元素 如果元素本身是一個可變數據類型的列表,那麼其嵌套項可以被改變
7、元組一個逗號的魅力
如果元組中只有一個值,如果沒有逗號,變量的類型就是值的類型
如果有逗號,則表示元組類型
8、tuple()函數
tuple 函數的功能與 list 函數基本上一樣的,以一個序列作爲參數並把它轉換爲元組,如果參 數是元組,那麼該參數就會被原樣返回
9、元組中的方法
10、遍歷元組、元組中的方法
遍歷一維列表
遍歷二維元組
enumerate()內置函數
for循環每遍歷一次enumerate()函數返回一個元組(index,value),索引從0開始
11、元組的應用場景
元組用在項目中固定數據聲明,如一年四季、首頁菜單,宮廷遊戲官位 爲什麼要用元組? 爲了讓某些數據在程序運行過程中不能修改,提升程序的穩定性
三、字典
1、什麼是字典字典是項目開發過程中使用頻率最高的一個組合數據類型。它用於存放具有映射關係的數據。 比如有份成績表數據,語文:79,數學:80,英語:92,這組數據看上去像兩個列表,但這 兩個列表的元素之間有一定的關聯關係。如果單純使用兩個列表來保存這組數據,則無法記 錄兩組數據之間的關聯關係。爲了保存具有映射關係的數據,Python 提供了字典,字典相 當於保存了兩組數據,其中一組數據是關鍵數據,被稱爲 key;另一組數據可通過 key 來 訪問,被稱爲 value。形象地看,字典中 key 和 value 的關聯關係如圖所示:
2、創建字典的兩種方式
-
2.1 使用花括號語法來創建字典
在使用花括號語法創建字典時,花括號中應包含多個 key-value 對,key 與 value 之間用英 文冒號隔開;多個 key-value 對之間用英文逗號隔開 如下代碼示範了使用花括號語法創建字典:
-
2.2 使用系統內置的 dict()創建字典
dict()內置函數可以創建一個空字典、或者通過列表+元組的形式或者元組+元組形式創建一 個字典,或者通過關鍵字來創建一個字典
Python中使用 dict表示字典,dict 要求 key 必須是不可變類型
字典的 value 值可以是任意數據類型
key 不允許重複
由於字典中的key是非常關鍵的數據,而且程序需要通過key來訪問value,一旦字典的key重複了,相當於給這個key重新賦值
應用場景:
當保存一些事物的信息的時候我看可以使用字典格式,例如用戶的信息 練習:創建一個字段保存個人信息,並且打印個人信息和變量類型
3、字典的方法(增刪改查)
- 3.1 增加操作
方法 | 描述 |
---|---|
變量名[key]=value | 通過key添加value值,如果key存在則覆蓋 |
setdefault(key,default_value) | 指定key和value,如果key存在則不覆蓋 |
- 3.2刪除操作
方法 | 描述 |
---|---|
pop | 彈出,返回並刪除指定鍵對應的值dict.pop(‘key’) |
popitem | 隨機彈出一個鍵值元組,這裏隨機的原因是因爲字典無序 |
clear | 清空字典 |
del | 刪除整個字典,或者通過字典的key刪除對應鍵值對;Python內置方法,不是字典獨有的方法; |
- 3.3修改操作
方法 | 描述 |
---|---|
字典名[key]=value | 通過key添加value值,如果key存在則覆蓋 |
update() | 傳遞一個字典,如果key相同則覆蓋,沒有的key則添加 |
- 3.4 查找操作
方法 | 描述 |
---|---|
根據key查找 | 通過制定的key找對應的值dict[‘key’] |
keys | 包含字典所有key的dict_keys對象,該對象可以轉換爲列表 |
values | 包含字典所有的value的dict_keys對象,該對象可以轉換爲列表 |
get | 以鍵取值,如果指定鍵不存在,默認返回None,可以指定返回內容 |
update | 以字典格式更新指定鍵的內容,如果鍵不存在,創建鍵和值 |
items | 返回字典鍵值呈元組形式的格式 |
len | 測量字典,鍵值對的個數(整體) |
4、字典的常見操作
四、集合
返回文章目錄1、什麼是集合
- 集合是盛放多個數據的一種類型。集合中的元素是無序的,唯一的、不可改變類型
- 可以使用大括號 { } 或者 set() 函數創建集合
- 格式:
(1). 變量名={元素 1,元素 2,元素 3,…}
(2). 變量名=set(序列) 例如 變量名=set(元組,自動,字符串) - 注意事項:
1.創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典 2.集合中的元素必須是不可修改類型
練習 1:創建集合並且查看內容和類型
2、集合的操作(增刪改)
-
2.1 增加操作
方法: add() 和 update()
-
2.2 刪除操作
pop、remove、clear、del
-
2.3 查詢操作
3、集合的數學運算
- 1.交集(& 或者 intersection)取公共部分
- 2.並集 (| 或者 union) 取去除重複部分內容
- 3.差集 (- 或者 difference)取 set1 或者 set2 中除去公共部分的內容
- 4.反交集 (^ 或者 symmetric_difference)
- 5.子集 (< 或者 issubset)
- 6.超集 (> 或者 issuperset)
練習 1:去除列表中重複的內容
4、集合的運用的場景
由於元素在集合中只能存儲一次,集合 (set) 可以用來把重複項從其他數據類型中過濾掉。 直接把其他類型 轉換爲一個集合 (set) ,然後再轉換回來即可
筆試題:
現有如下數據 lst = [1, 1, 5, 2, 6, 10, 9, 8, 8, 9, 2, 3] 請按照自己的思路將上述列表中的數據,完成重複數據的剔除,並按照自然順序排序展示