一、字典
1、定义字典
d = dict(username='yan', age=18)
print(d) # {'username': 'yan', 'age': 18}
2、类型转换
d1 = dict([['username','password'],('yan',123)])
print(d1) # {'username': 'password', 'yan': 123}
3、操作方法
(1)取值
d = {'username': 'yan', 'password': 123}
get方法:
res = d.get('username')
print(res) # yan
res = d.get('xxx')
print(res) # None 键不存在会返回None 不会报错
res = d.get('username', '自定义语句')
print(res) # 键存在还是返回对应的值
res = d.get('xxx', '自定义语句')
print(res) # 键不存在 返回get方法里面第二个参数,即自定义语句
(2)字典新增键值对
方式1:
d['hobby'] = 'study' # 字典的key不存在新增
print(d)
d['username'] = 'yan'
print(d) # 字典的key存在则修改
方式2:
d.update(username='di')
print(d) # 特点同上
方式3
ps:
键如果存在的情况下 那么不做修改 而是将对应的value取出
键如果不存在的情况下 那么就是新增
d.setdefault('xxx',123)
print(d) # 键不存在是新增
res = d.setdefault('username',123)
print(d) # {'username': 'yan', 'password': 123}
print(res) # yan
4、快速构造字典
res = {}.fromkeys(['k1','k2','k3'],[])
# print(res) # {'k1': [], 'k2': [], 'k3': []}
res.get('k1').append(123) # {'k1': [123], 'k2': [123], 'k3': [123]}
print(res) # 因为构造字典时key指向的都是[],所以[]发生改变时,key的value也跟着改变
5、弹出
res = d.pop('username') # 将括号内指定的key对应的value弹出
print(d,res) # yan
res1 = d.popitem() # 将弹出的键值对组织成元组的形式返回出去
print(d,res1) # {'username': 'yan'} ('password', 123)
6、字典方法三剑客
print(d.keys()) # 获取字典所有的key
print(d.values()) # 获取字典所有的value
print(d.items()) # 获取字典所有的key和value组织成小元组
for循环取值:
for key in d.keys():
print(key)
for value in d.values():
print(value)
for item in d.items():
print(item)
for k, v in d.items():
print(k,v)
二、集合
1、定义
s1 = {}
d1 = {}
print(type(s1),type(d1)) # <class 'dict'> <class 'dict'>
# 定义空集合一定要用set关键字
ss = set()
print(ss,type(ss)) # set() <class 'set'>
s = {1,1,1,2,3,3,4,3,2,3,4,6,5,3,}
print(s) # 集合可以自动去重
2、类型转换
s1 = set('yan is a student')
print(s1)
s2 = set([1,2,3,4,5,6,7,7,7,7,7])
print(s2)
s3 = set({'username':'yan','password':123})
print(s3) # {'password', 'username'}
3、去重的另外两个方法
方法一:
l = [4,3,2,3,4,6,7,8,1,2,3]
new_l = []
for i in l:
if i not in new_l:
new_l.append(i)
print(new_l)
方法2:
res = {}.fromkeys(l1, [])
l2 = []
for k in res.keys():
l2.append(k)
print(l2)
4、交集、并集、差集、对称差集
用户1的好友列表
friends1 = {'jason','tank','tony','jerry'}
用户2的好友列表
friends2 = {'jason','tony','owen','oscar'}
(1) 求两个用户的共同好友 交集
res = friends1 & friends2
print(res) # {'jason', 'tony'}
(2) 求两个用户所有的好友
res = friends1 | friends2
print(res) # {'jerry', 'jason', 'oscar', 'tony', 'tank', 'owen'}
(3) 求用户1独有的好友
res1 = friends1 - friends2
res2 = friends2 - friends1
print(res1,res2) # {'jerry', 'tank'} {'owen', 'oscar'}
(4) 求两个用户各自独有的好友 对称差集
res = friends1 ^ friends2
print(res) # {'owen', 'jerry', 'tank', 'oscar'}
5、子集 父集
s1 = {12,3,4,5,6}
s2 = {12,6}
print(s1 > s2) # s1是否是s2的父集
print(s2 < s1) # s2是否是s1的子集
网友评论