#关系运算
friends1 = ["zero","kevin","jason","egon"]
friends2 = ["Jy", "ricky", "jason", "egon"]
#从这两个列表中找到相同的元素
l=[]
for i in friends1:
if i in friends2:
l.append(i)
print(l)
['jason', 'egon']
1.定义:在{}内用逗号分隔开多个元素,多个元素满足以下三个条件
1.集合内元素必须为不可变类型
2.集合内元素无序
3.集合内元素没有重复
s={1,[1,2]} #集合内元素必须为不可变类型
s={1,'a','z','b',4,7} #集合内元素无序
s={1,1,1,1,1,'b','a'} #集合内元素没有重复
print(s)
{'b', 1, 'a'}
s={} #默认是空字典
print(s,type(s))
{}
定义空集合
s=set()
print(s,type(s))
set()
2.类型转换
res_str=set("llj") #将字符串转换成集合
print(res_str)
{'j', 'l'}
res_list=set([1,2,3,1]) #将列表转换成集合
print(res_list)
{1, 2, 3}
res_list1=set([1,2,3,1,[2,3]]) #因为[2,3]是可变类型,所以报错
print(res_list1)
3.内置方法
friends1 = {"zero","kevin","jason","egon"}
friends2 = {"Jy", "ricky", "jason", "egon"}
#合集/并集(|):求两个用户所有的好友(重复好友只留一个)
res_heji=friends1 | friends2
print(res_heji)
{'zero', 'ricky', 'kevin', 'egon', 'Jy', 'jason'}
res_set=friends1.union(friends2)
print(res_set)
{'egon', 'kevin', 'Jy', 'jason', 'ricky', 'zero'}
#交集(&):求两个用户的共同好友
res_jiaoji=friends1 & friends2
print(res_jiaoji)
{'jason', 'egon'}
res_set=friends1.intersection(friends2)
print(res_set)
{'egon', 'jason'}
#差集(-):
res_chaji=friends1 - friends2
print(res_chaji)
{'kevin', 'zero'} #求用户1独有的好友
res_set=friends1.difference(friends2)
print(res_set)
{'zero', 'kevin'}
res_chaji2=friends2 - friends1
print(res_chaji2)
{'Jy', 'ricky'} #求用户2独有的好友
res_set=friends2.difference(friends1)
print(res_set)
{'Jy', 'ricky'}
#对称差集(^) # 求两个用户独有的好友们(即去掉共有的好友)
res_duichen1=(friends1 - friends2) | (friends2 - friends1)
print(res_duichen1)
{'kevin', 'Jy', 'zero', 'ricky'}
res_duichen=friends1 ^ friends2
print(res_duichen)
{'zero', 'ricky', 'Jy', 'kevin'}
res_set=friends1.symmetric_difference(friends2)
print(res_set)
{'Jy', 'ricky', 'kevin', 'zero'}
#父子集:包含的关系
s1={1,2,3}
s2={1,2,4}
不存在包含关系,下面比较均为False
print(s1 > s2)
print(s1 < s2)
print(s1.issuperset(s2))
False
s1={1,2,3}
s2={1,2}
print(s1 > s2) #当s1大于等于s2时,才能数s1是上他爹
True
print(s1.issuperset(s2))
True
s1={1,2,3}
s2={1,2,3}
print(s1 == s2) #s1与s2互为父子
True
print(s1.issubset(s2))
True