您的位置:首页 > 编程语言 > Python开发

python数据类型之集合

2018-01-11 11:35 309 查看
 
 
集和(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)
##判断是否没有交集
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pytho 数据类