字典的内置方法
1 dic={'username':"kevin",'age':18}
2 # 定义空字典
3 d = {}
4 # info=dict(username='kevin',age=18)
5 # print(info)
6
7 #1.支持key取值
8 new_dic=dic['username']
9 print(new_dic)
10 item={'username':'tank','age':20,'hobbios':[1,2,3]}
11 print(item['hobbios'][0])
12
13 #2.赋值操作
14 item['name']='kevin'#字典末尾赋值
15 print(item)
16 item['age']=21#当k存在时就是修改v值,k不存在时就是添加行的元素
17 print(item)
18
19 # 3.成员运算
20 item={'username':'tank','age':20,'hobbios':[1,2,3]}
21 print('tank'in item)#False
22 print('username'in item)#True
23 '''字典暴露的是k值'''
24
25 #删除
26 print(item.pop('tank'))
27 print(item.pop('username'))
28 '''字典要删除v值必须通过y来实现,不能索引来实现'''
29
30 key、value、items
31 item={'username':'tank','age':20,'hobbios':[1,2,3]}
32 print(item.keys())#dict_keys(['username', 'age', 'hobbios'])
33 '''把字典所有k值拿出来,组装成列表返回'''
34 print(item.values())#dict_values(['tank', 20, [1, 2, 3]])
35 '''把字典里所有的value值拿出来,组成列表返回'''
36 print(item.items())
37 '''把所有元素拿出来组装成列表套元组,元组里面是字典k和v值'''
38 for i in item.keys():
39 print(i)
40 for j in item.values():
41 print(j)
42 for k in item.items():
43 print(k[0],k[1])
44
45 #字典的其他用法
46
47 1.get
48 d={'name':'jack','age':18}
49 print(d['name'])
50 print(d['name1'])#字典通过k取值,k值不存在直接报错
51 print(d.get('name'))
52 print(d.get('name1'))#如果用get取值,k值存在去除相应的值,k只不存在返回None
53 print(d.get('name','jack'))
54 print(d.get('name1',123))#get可以传递第二个参数,当k值不存在时,当k只不存在时直接返回第二参数得值
55
56 popitem
57 d={'name':'jack','age':18}
58 print(d.popitem())
59 print(d)
60 '''删除末尾的元素,并且把删除的值弹出来'''
61
62 update
63 d={'name':'jack','age':18}
64 d1 = {'name': 'tank', 'hobbys': ['read', 'musi']}
65 d.update(d1)
66 print(d)#{'name': 'tank', 'age': 18, 'hobbys': ['read', 'musi']}
67 uadate的功能是:如果字典的k存在,则修改原来的k,如果不存在,则添加一个新值'''
68 formkeys
69 c = d.fromkeys('k1', 'k2')
70 print(c) # 相当于给字典批量赋值,但赋值一样
71
72 setdefault
73 dic = {'k1': 111, 'k2': 222}
74 res = dic.setdefault('k3', 333) # key不存在则新增键值对,并将新增的value返回
75 print(res, dic) # 333 {'k1': 111, 'k2': 222, 'k3': 333}
76 res1 = dic.setdefault('k1', 116) # key存在则不做任何修改,并返回已存在key对应的value值
77 print(res1, dic) # 111 {'k1': 111, 'k2': 222, 'k3': 333}
元组的内置方法
1 # 1.类型转换
2 # 整数,浮点型不能转换
3 print(tuple('hello'))#('h', 'e', 'l', 'l', 'o')
4 print(tuple([1,2,1,3]))#(1, 2, 1, 3)
5 print(tuple({"k1":1,'k2':2}))#('k1', 'k2')
6
7 # 2.取值
8 '''取值索引取值,从零开始,负号代表方向'''
9
10 # 切片
11 t=(1,2,3)
12 print(t[0:2])#(1, 2)从索引位置开始取两位
13 print(t[ :2])#(1, 2)从头开始取两位
14 print(t[ :2:2])#从头开始取,步长为2
16 #长度len
17 print(len(t))
18
19 #成员运算
20 print(1 in t)#Ture
21 print(1 not in t)#False
22
23 #循环for
24 for i in t:
25 print(i)
26 """当元组内只有一个元素时,里面要加逗号,否则不是元组"""
27 '''建议:
28 只要是容器类型,当元素只有一个的时候,建议都加上逗号
29 容器类型:
30 只要是能够存放多个元素的数据类型都可以称之为是容器类型'''
集合内置方法
#1.定义 s={1,2,3,3,2,1} #功能:去重、运算、无序 #定义空集:set() print(set(111)) print(set(1.11)) '''整型和浮点型都不能转为集合 能够支持for循环的都可以转为集合类型''' 小练习
name_list = ['kevin', 'tank', 'tony', 'tony', 'jack', 'jack', 'jack', 'tony', 'ly', ]
基本要求去重
print(set(name_list)) # {'tony', 'jack', 'kevin', 'tank', 'ly'}利用集合的去重功能
print(list(set(name_list)))
拔高要求去重保留原来顺序先定义一个空列表
new_name = []
for name in name_list:
print(name)
if name not in new_name:
new_name.append(name) # 末尾依次增加,new_name里面有的就不进去
print(new_name) # ['kevin', 'tank', 'tony', 'jack', 'ly']
集合的关系运算
friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们 friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们 1.并集和合集(|)所有好友重复留一个 print(friends2 | friends1) 2.交集(&)共同好友 print(friends2&friends1) 3.对称差集(^)求独有好友 print(friends2^friends1) 4.差集 print(friends2-friends1)#friend2的单独好友 print(friends1-friends2)#friend1的单独好友
6.父集:一个集合是否包含另外一个集合,包含则返回Ture,否则为False print({1,2,3}>={1,2,3})#Ture 7.子集:一个集合是否属于另外一个集合。属于则返回Ture,否则为False print({1,2} < {1,2,3})#Ture
集合练习题
"""
一.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'ly','qq','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
1. 求出即报名python又报名linux课程的学员名字集合
2. 求出所有报名的学生名字集合
3. 求出只报名python课程的学员名字
4. 求出没有同时这两门课程的学员名字集合
"""
pythons={'ly','qq','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
print(pythons & linuxs)
print(pythons |linuxs)
print(pythons-linuxs)
print(pythons^linuxs)