元祖
1.什么是元祖
使用()將多個元素括起來,多個元素之間用逗號隔開
a.
容器,可以同時存儲多個數(shù)據(jù),不可變的,有序的
不可變 ---> 不能增刪改
有序 ---> 可以通過下標獲取元素
b.
元素,可以是任何類型的數(shù)據(jù)
1.如果元祖的元素只有一個的時候,必須在元素的后面加逗號
2.多個數(shù)據(jù)直接用逗號隔開,表示的也是一個元祖
元祖的元素不支持增刪改
列表獲取元素的方式,元祖都支持:元祖[下標], 元祖[:], 元祖[::]
遍歷:和列表一樣
補充:獲取部分元素
可以通過相同的變量個數(shù),來一一獲取元祖中的元素
可以通過在變量前加來獲取部分的元素(適用于列表)
了解)
可以通過在列表或者元祖前加,來展開列表中的元素
+, *, ==, is, in, not in ---> 和列表一樣
所有的序列都可以轉(zhuǎn)換成元祖,注意,字典只能將key值作為元祖元素
可以通過sorted()方法,對元祖進行排序,產(chǎn)生一個新的列表
2.認識字典
什么時候用容器類型的數(shù)據(jù)? ---> 需要同時保存多個數(shù)據(jù)的時候
什么時候用列表? ---> 保存的多個數(shù)據(jù)是同一類的數(shù)據(jù)(不需要區(qū)分)
什么時候用字典? ---> 保存的多個數(shù)據(jù)是不同類的數(shù)據(jù) (需要區(qū)分)
1.什么是字典(dict)
字典是一個容器類的數(shù)據(jù)類型,可以用來存儲多個數(shù)據(jù)(以鍵值對的形式存儲)??勺兊?,無序的
{key1:value1, key2:value2...}
可變 ---> 可以增刪改
無序 ---> 不能通過下標獲取值
鍵(key): 用來定位值的。要求只能是不可變的數(shù)據(jù)類型(數(shù)字,字符串,元祖...)。是唯一的
值(value): 存儲的數(shù)據(jù)??梢允侨魏晤愋偷臄?shù)據(jù)
3.字典的增刪改查
1.查(獲取鍵值對的value)
獲取字典的值,必須通過key來獲取
a.字典[key] ---> 獲取key對應(yīng)的值
注意:key值必須是存在的,否則會報KeyError
b.字典.get(key) ---> 通過key獲取值
注意:key值不存在的時候不會報錯,結(jié)果是None
確定key一定存在就是使用[]語法,key可能不存在的時候使用get語法
c.直接遍歷字典(推薦使用)
通過for-in遍歷字典拿到的是key值
d.其他遍歷方式(了解)
2.增(添加鍵值對)
字典[key] = 值(key不存在)
3.修改(修改值)
字典[key] = 新值 (key存在)
4.刪 (刪除鍵值對)
a. del 字典[key] ---> 通過key刪除鍵值對
b. 字典.pop(key) ---> 取出key對應(yīng)的值(實質(zhì)還是刪除key對應(yīng)的鍵值對)
4.字典相關(guān)操作
1.字典相關(guān)運算
==: 判斷兩個字典的值是否相等
is: 判斷兩個字典的地址是否相等
in 和 not in: key in 字典 / key not in 字典 ---> 判斷key是否存在
2.字典相關(guān)的函數(shù)和方法
1.len(字典) --> 獲取鍵值對的個數(shù)
2.字典.clear() --> 清空字典
3.字典.copy() --> 將字典中的鍵值對復(fù)制一份產(chǎn)生一個新的字典
4.dict.fromkeys(序列, 值) --> 創(chuàng)建一個字典,將序列中的每個元素作為key,值作為value
5.字典.get(key) --> key不存在取None
字典.get(key,默認值) --> key不存在取默認值
6.字典.values() --> 返回所有值對應(yīng)的序列
字典.keys() --> 返回所有鍵對應(yīng)的序列
字典.items() --> 將鍵值對轉(zhuǎn)換成元祖,作為一個序列的元素
注意:返回的都不是列表,是其他類型的序列
7.字典.setdefault(key) --> 添加鍵值對,鍵是key,值是None
字典.setdefault(key,value) --> 添加鍵值對,鍵是key,值是value
注意:key存在的時候,對字典不會有任何操作(不會修改key對應(yīng)的值)
8.字典1.update(字典2) --> 使用字典2中鍵值對去更新字典1。(已經(jīng)存在的key就更新,不存在就添加)
5.集合
1.什么是集合(set)
容器,可以同時存儲多個數(shù)據(jù),可變的,無序的,元素是唯一的
可變 --> 增刪改
無序 --> 不能通過下標獲取元素
唯一 --> 自帶去重的功能
{元素1, 元素2...}
元素:只能是不可變的數(shù)據(jù)
2.集合的增刪改查
a.查(獲取元素)
集合不能單獨的獲取一個元素,也不能切片,只能通過for-in來遍歷
b.增(添加元素)
集合.add(元素) --> 在集合中添加一個元素
集合1.update(序列) --> 將序列中的元素添加到集合1中
3.刪(刪除元素)
集合.remove(元素) --> 刪除指定的元素
4.改(集合不能改)
6.集合相關(guān)的數(shù)學(xué)運算
集合相關(guān)的運算: 是否包含,交集、并集、差集、補集
1.包含
1.集合1 >= 集合2 ---> 判斷集合1之中是否包含集合2
集合2 <= 集合2 ---> 判斷集合2之中是否包含集合1
2.交集 -> &
& --> 求兩個集合公共的部分
3.求并集
| --> 求兩個集合的和
4.求差集
集合1-集合2 --> 求集合1中除了集合2以外的部分
5.求補集
^ --> 求兩個集合除了公共部分以外的部分
7.類型的轉(zhuǎn)換
1.整型
int()
浮點數(shù)、布爾、部分字符串可以轉(zhuǎn)換成整型。
只有去掉引號后本身就是一個整數(shù)的字符串才能轉(zhuǎn)換成整型
2.浮點數(shù)
整數(shù),布爾,部分字符串可以轉(zhuǎn)換成浮點數(shù)
去掉的引號,本身就是一個數(shù)字的字符串才能轉(zhuǎn)換成浮點數(shù)
3.布爾
所有的數(shù)據(jù)都可以抓換成布爾值
為空為0的值轉(zhuǎn)換成False, 其他的數(shù)據(jù)都轉(zhuǎn)換成True
4.字符串
str()
所有的數(shù)據(jù)都可以轉(zhuǎn)換成字符串
數(shù)據(jù)轉(zhuǎn)換成字符串,就是在數(shù)據(jù)的最外面加引號
5.列表
list()
序列才能轉(zhuǎn)換成列表。
將序列中的元素作為列表的元素。字典轉(zhuǎn)換成列表,將字典的key作為列表的元素
6.元祖(和列表一樣)
tuple()
只能將序列轉(zhuǎn)換成元祖
7.字典
dict()
序列的每個元素有兩個元素的數(shù)據(jù)才能轉(zhuǎn)換成字典
8.集合
set()
序列可以轉(zhuǎn)換成集合,有去重的功能