01-字典(dict)
1肄方、字典是容器類型(序列)赂弓,以鍵值對作為元素(字典里面存的數(shù)據(jù)全是以鍵值對的形式出現(xiàn)的)
格式:{key1: value,key2, value2...}
2鞭呕、鍵值對:鍵:值(key:value)
鍵(key):要唯一撼短,不可變的(數(shù)字踩寇、布爾框沟、字符串和元祖牍氛,推薦使用字符串)晨继,如果出現(xiàn)多個鍵相同的元素,前面的就會被后面的覆蓋搬俊;
值(value):可以是任何類型的數(shù)據(jù)紊扬;
3、字典是可變的(可以進行增刪改操作)唉擂,其操作的數(shù)據(jù)是字典中的值餐屎;
4、字典的查操作
獲取字典的元素對應(yīng)的值
格式:
a玩祟、字典[key]:其中如果key不存在就會報異常腹缩;
b、字典.get(key):其中如果key不存在不會報錯空扎,而是返回None;
c庆聘、遍歷字典:其遍歷的是字典的key值;
5勺卢、字典的修改操作
格式:字典[key] = 新值(key存在)
6伙判、字典的添加操作
格式:字典[key] = 值(key原本不存在于字典中)
7、字典的刪除操作
格式1:del 字典[key]
格式2:字典.pop[key]
02-字典的相關(guān)運算和方法
1黑忱、字典不支持“+”和“*”宴抚;
2勒魔、in和not in :在字典中,是判斷key是否存在菇曲;
3冠绢、len():求字典的長度
4、clear():刪除字典中的所有元素(鍵值對)
5常潮、copy():拷貝字典中的所有元素弟胀,放到一個新的字典中;
6喊式、dict.fromkeys(序列孵户,默認值=None):將序列中的每個值作為key,默認值為valuec創(chuàng)建一個新的字典岔留;
7夏哭、字典.keys():獲取字典中所有的key,以列表的形式返回;
8献联、字典.values():獲取字典中所有的value竖配;
9、字典.items():獲取字典的鍵值對
10里逆、字典.setdefault(key,默認值= none):給字典添加鍵值對进胯;如果本身就存在,這個方法無作為原押;
11胁镐、字典1.update(字典2):將字典2的鍵值對更新到字典1中;如果字典2中的key在字典中是存在的班眯,就用字典2中可以對應(yīng)的值覆蓋字典1中的值希停;如果不存在就添加到字典1中;
03-字典和列表的組合使用
1署隘、什么時候用列表宠能?什么時候用字典?
保存的數(shù)據(jù)是同一類型的時候磁餐,就使用列表违崇;
保存的數(shù)據(jù)不是同一類型的時候,就是用字典诊霹;
實例:
#列表中有字典
student_system = [
{'name': '001', 'age': 18, 'tel': '234', 'native_place': '成都'},
{'name': '002', 'age': 18, 'tel': '325', 'native_place': '北京'},
{'name': '003', 'age': 18, 'tel': '3245', 'native_place': '上海'}
]
#取出第一個學(xué)生的籍貫
print(student_system[0]['native_place'])
#字典中有列表
py_class = {
'class_name': 'python1806',
'students': [
{'name': '001', 'age': '18', 'id': '180601'},
{'name': '002', 'age': '18', 'id': '180602'},
{'name': '003', 'age': '18', 'id': '180603'},
]
}
#取班級名
print(py_class['class_name'])
#取第3個學(xué)生的名字
print(py_class['students'][2]['name'])
#練習(xí):在班級python1806中添加一個學(xué)生羞延,學(xué)生的信息是輸入的:
# name = input('請輸入姓名:')
# age = int(input('請輸入年齡:'))
# id = input('請輸入學(xué)號:')
# #一個學(xué)生對應(yīng)一個字典
# student = {'name': name, 'age': age, 'id': id}
# #將學(xué)生對應(yīng)的字典添加到列表中
# py_class['students'].append(student)
# print(py_class['students'])
#練習(xí):輸入一個學(xué)生的姓名,根據(jù)輸入的姓名刪除對應(yīng)的學(xué)生
del_name = input('請輸入要刪除的學(xué)生的姓名:')
#遍歷取出每個學(xué)生對應(yīng)的字典
for x in py_class['students'][:]:#涉及到刪除操作脾还,要使用[:]來切片完成拷貝
#判斷學(xué)生姓名是否相等
if x['name'] == del_name:
py_class['students'].remove(x)
print(py_class['students'])
04-集合(set)
1伴箩、定義:集合是python中的一種容器類型;無序的鄙漏,可變的嗤谚,值唯一棺蛛;其元素除了可變的類型,其他的基本都行巩步,數(shù)字旁赊、布爾和字符串都是可以的;
格式:集合名 = {元素1椅野,元素2终畅,...}
2、其他數(shù)據(jù)轉(zhuǎn)換成集合時竟闪,自帶去重功能离福;
3、集合中的相關(guān)操作
1)瘫怜、查(獲取集合中的元素)
集合是不能單個獲取其中的某一個元素的
只能通過遍歷來實現(xiàn)查詢术徊;
2)本刽、增(添加元素)
格式1:集合.add(元素)
格式2:集合1.update(集合2):將集合2中的元素添加到集合1中鲸湃;
3)、刪
格式:集合.remove(元素)
集合.clear():刪除所有元素
4子寓、集合相關(guān)的運算
1)暗挑、是否包含:
集合1 >= 集合2:判斷集合1是否包含集合2
集合1 <= 集合2:判斷集合2是否包含集合1
2)、求兩個集合的并集:
集合1 | 集合2
3)斜友、求兩個集合的交集:
集合1 & 集合2
4)炸裆、求兩個集合的差集:
集合1 - 集合2
5)、求兩個集合的補集:
集合1 ^ 集合2
補充:sum()是python中的求序列元素和的內(nèi)置方法鲜屏。