python数据类型之集合

 

 

集和set——字典的近亲

实现列表去重:

方法1:

li = [1, 2, 3, 4, 3, 2]

s = set(li)

l = list(s)

print set(l)

方法2:

li = [1, 2, 3, 4, 3, 2]

d = {}.fromkeys(li)

print d.keys()

 

*集和是无序的,不重复的数据类型,不支持索引,切片,重复,和连接,但支持成员操作符(in,not in),支持for循环,是可迭代的

**两个功能去重

            实现关系测试(交集,并集,差集,是否子/父集,是否没有交集)

 

1. 集和的定义:

s = {}

print type(s)      ##花括号里面为空,则默认为字典类型

方法1(直接定义法):

s = {1,2,3,2,5}

print type(s)

方法2(工厂函数法):

s = set()

print type(s)

s = set([1,2,3,2,5])

print s

 

2. 集合的增删改查

1)增:

s = {1, 2, 3, 4, 3, 2}

print s

s.add(5)

print s

 

s1 = {"a", "b", "c"}

s.update(s1)     ##s+s1

print s

 

2)删:

s = {1, 2, 3, 4, 3, 2}

s.pop()         ##随机删除一个元素

 

s.remove("2")   ##删除一个元素,该元素必须存在于集合中,否则报错

 

s.discard("3")  ##删除一个元素,该元素必须存在于集合中,否则不做任何操作

 

s.clear()       ##清空集和

 

3)(求集和关系)

s1 = {1,2,3,5}

s2 = {2,4,6,7}

print s1 & s2    

print s1.intersection(s2) ##求交集

print s1.intersection_update(s2) ##求交集,并赋给S1

print s1 | s2    

print s1.union(s2) ##求并集

print s1 - s2  

print s1.difference(s2) ##求差集

print s1 ^ s2    

print s1.symmetric_difference ##求对等差分(并集-交集)

print s1.issubset(s2) ##判断子集

print s1.issuperset(s2) ##判断父集

print s1.isdisjoint(s2) ##判断是否没有交集

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值