天天看點

day8學習筆記(元組和字典)元組和字典

元組和字典

元組

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中的集合支援數學集合運算:&(交集)、|(并集)、-(差集)、^(對稱差集)、>/<(判斷真子集)