python集合的元素类型_Python-集合类型(set)

#关系运算

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值