元組和字典
元組
1. 元組tuple就是不可變的清單 - 不支援增删改
元組是容器型資料類型,将()作為容器的标志,元素之間逗号隔開:(元素1, 元素2,元素3,…)
元組是有序的(支援下标操作)
1)空元組
tuple1 = ()
print(type(tuple1))
2)單個元素的元組
list1 = [10] # 單個元素清單
tuple2 = (10,)
3)多個元素的元組
a. 變量 = (元素1, 元素2, 元素3,…)
b. 變量 = 元素1, 元素2,元素3,…
2. 擷取元組中的元素
1)元組支援清單擷取元素的方法
a. 擷取單個元素 - 元組[下标]
b. 切片 - 元組[開始下标:結束下标:步長]
c. 周遊 - for 變量 in 元組: / for 下标 in range(len(元組)):
2)其他方式(同樣适用于清單)
a. 變量1,變量2,變量3,… = 元組 (變量個數與元組元素保持一緻)
tuple3 = 10, 20, 30
x, y, z = tuple3
b. 變量1,變量2,變量3,… = 元組 (變量個數小于元組元素個數,并且有且隻有一個變量前有*
a, b, *c, d, e = 1, 2, 3, 4, 5, 6, 7, 8, 9
print(a, b, c, d, e)
print(type(c))
print(*c)
補充:*打包\解包功能
3.清單相關操作全部适用于元組
字典基礎
1. 字典(dict) - 同時儲存多個資料,且資料意義不同
#字典是容器型資料類型,将{}作為容器标志,多個元素之間逗号隔開(字典元素是鍵值對):{鍵1:值1,鍵2:值2}
字典是可變的,無序的(不支援下标操作)
字典中元素:鍵值對
鍵 - 不可變、唯一性(一般是字元串)
值 - 任何類型的資料,可重複
字典儲存的是值,鍵是對值進行區分和差別
空字典
2. 擷取字典的值
1)擷取單個元素的值
a. 字典[key] - 擷取字典中指定key對應的值(如果不存在,報錯)
b. 字典.get(key) - 擷取字典中指定key對應的值(如果不存在,傳回None)
c. 字典.get(key, 預設值) - key不存在,傳回預設值
2)周遊
a. 掌握和使用的周遊方法(效率最高)
for 變量 in 字典:
循環體
注意:周遊字典中所有key
dict1 = {123: 45, '456': 78, '789': 90}
for x in dict1:
print(x, dict1[x])
b. 其他兩種情況
for 變量 in 字典.values():
循環體
注意:周遊字典中所有值(效率低)
c. 其他兩種情況
for 變量1, 變量2 in 字典.items():
循環體
for x, y in dict1.items():
print(x, y)
應用
students = [{'name': '姓名1', 'age': 23, 'telephone': '13756784455', 'score': 89},
{'name': '姓名2', 'age': 17, 'telephone': '13758888455', 'score': 98},
{'name': '姓名3', 'age': 18, 'telephone': '13711114455', 'score': 76},
{'name': '姓名4', 'age': 16, 'telephone': '13756789999', 'score': 66}]
count = 0
for stu in students:
if stu['age'] < 18:
count += 1
print(count)
字典元素的增删改
1. 增/改
文法1:字典[key] = 值
說明:key存在(改),修改制定key對應的值,key不存在(增),增加鍵值對’key:值’
文法2:字典.setdefault(鍵, 值) - 添加鍵值對(不存在修改功能)
2. 删
1)del
del 字典[key] - 删除指定key對應鍵值對(key不存在,報錯)
2)pop
字典.pop(key) - 取出字典中指定key對應的值,并且傳回被取出的值
字典相關操作和方法
1.字典相關操作
字典不支援加法和乘法運算
1)比較運算
字典隻支援比較相等,不支援比較大小
2)in 和 not in
key in 字典 - 判斷字典中是否存在指定的key
key not in 字典 - 判斷字典中是否不存在指定的key
3)相關函數
a. len(字典) - 統計鍵值對個數
b. dict(資料) - 将資料轉換為字典
資料要求:1.容器型資料 2.資料元素中有且隻有兩個元素 3.資料元素中第一個元素是不可變的
c.字典轉換成其他資料類型
bool(字典) - 空字典轉換為False,其他為True
list(字典) - 将字典的key作為清單的元素
tuple(字典) - 将字典的key作為元組的元素
2.相關方法
1)字典.clear() - 清空字典
2)字典.copy() - 複制字典并産生新的字典
3)dict.fromkeys()
dict.fromkeys(序列) - 建立新字典,key是序列中元素,值為None
dict.fromkeys(序列, 值) - 建立新字典,key是序列中元素,值為指定值
4)item, keys, values
字典.keys() - 擷取字典中所有key,傳回一個容器(容器不是清單)
字典.values() - 擷取字典中所有值,傳回一個容器(容器不是清單)
字典.items() - 擷取字典中所有鍵值對,傳回一個容器,容器中元素是元組,每個元組對應一個鍵值對(容器不是清單)
5)字典.update(序列) - 用序列生成的字典更新原字典(存在修改,不存在添加)
集合
1.集合(set) - 容器型資料,将{}作為容器的标志,元素間逗号隔開:{元素1, 元素2, 元素3,…}
集合是可變的(支援增删改)、無序的
集合中元素不可變并且唯一,清單不能作為集合的元素
空集合
2.集合中元素的增删改查 - 集合無法修改元素
1)查
for 變量 in 集合:
循環體
2)增
a. 集合.add(元素) - 集合中添加元素
b. 集合.update(序列) - 序列中元素全部添加到集合
3)删
a. 集合.remove(元素) - 删除集合中元素(元素不存在報錯)
b. 集合.discard(元素) - 删除集合中元素(元素不存在不報錯)
3.數學集合運算
python中的集合支援數學集合運算:&(交集)、|(并集)、-(差集)、^(對稱差集)、>/<(判斷真子集)