码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础(二)之数据类型和运算(8)——集合

时间:2018-01-08 11:05:51      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:lis   join   class   报错   数据类型   upd   重复   作用   add   

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

集合的语法

list_1 = [1,2,3,4,5,5,6,6,]
list_1 = set(list_1)

list_2 = set([5,6,7,8,9])

print(list_1,type(list_1))
print(list_1,list_2)

>>>
{1, 2, 3, 4, 5, 6} <class ‘set‘> #把一个列表变成集合,就自动去重了
{1, 2, 3, 4, 5, 6} {5, 6, 7, 8, 9}

常用操作:

1、关系测试

#交集
print(list_1.intersection(list_2))
print(list_1 & list_2)

>>>
{5, 6}

 

#并集
print(list_1.union(list_2))
print(list_1 | list_2)

>>>
{1, 2, 3, 4, 5, 6, 7, 8, 9}

 

 

#差集=list_1 - 交集
print(list_1.difference(list_2))
print(list_1 - list_2)

>>>
{1, 2, 3, 4}

 

 

#对称差集 = 并集 - 交集
print(list_1.symmetric_difference(list_2))
print(list_1 ^ list_2)

>>>
{1, 2, 3, 4, 7, 8, 9}

 

 

#子集  list_1 是 list_2的子集
print(list_1.issubset(list_2))
#父集
print(list_1.issuperset(list_2))

>>>
False
False

 

 

#两集合的交集为空集
print(list_1.isdisjoint(list_2))

>>>
False

 

 

#增加
list_1.add(666)      #一项
list_2.update([11,22,33])   #多项
print(list_1,list_2)

>>>
{1, 2, 3, 4, 5, 6, 666} {33, 5, 6, 7, 8, 9, 11, 22}

 

 

 

#删除一项
list_1.remove(9)     #如果所删元素集合中不存在,报错
list_1.discard(9)   #如果所删元素集合中不存在,返回Non
print(list_1)

 

 

#删除任意,并返回
print(list_1.pop())

>>>
1

 

 

len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制  

 

Python基础(二)之数据类型和运算(8)——集合

标签:lis   join   class   报错   数据类型   upd   重复   作用   add   

原文地址:https://www.cnblogs.com/yz9110/p/8241261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!