day3-集合

概述

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

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

创建集合

list1=[1,3,5,6,7,8,5,3,1]

list1=set(list1)  #将列表转换为集合

print(list1,type(list1))  #自动去重
#输出
{1, 3, 5, 6, 7, 8} <class 'set'>

关系测试

1.交集(&)

>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list1=set(list1)     #创建集合
>>>list2=set(list2)
>>>list1.intersection(list2) {6,7} 或 >>>list1&list2 {6,7}

2.并集(|)

>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list1=set(list1)
>>>list2=set(list2)
>>>list1.union(list2) {1,33,3,66,5,6,7,8,44,22,55} 或 >>>list1|list2 {1,33,3,66,5,6,7,8,44,22,55}

3.差集(-)

差集取的是数值在第一个集合中,但是不在第二个集合中

#1里面有,2里面没有的
>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list1=set(list1)
>>>list2=set(list2)
>>>list1.difference(list2) {8,1,3,5} 或 >>>list1-list2 {8,1,3,5} #2里面有,1里面没有的 >>>list2.difference(list1) {33,66,44,22,55} 或 >>>list2-list1 {33,66,44,22,55}

4.对称差集(^)

把两个集合没有交集的数值取出来

>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list1=set(list1)
>>>list2=set(list2)
>>>>list1.symmetric_difference(list2) {1,66,3,5,8,22,33,44,55} 或 >>>list1^list2) {1,66,3,5,8,22,33,44,55}

5.是否是子集(<=)

一个集合是否是另一个集合的子集,是,则True,否,则False

>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list3=[1,3,5,8]
>>>list1=set(list1)
>>>list2=set(list2)
>>>list3=set(list3)

>>>list1.issubset(list2) 
False 
>>>list3.issubset(list1) 
True 

6.是否是父集(>=)

判断一个集合是否是另一个集合的父集

>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list3=[1,3,5,8]
>>>list1=set(list1)
>>>list2=set(list2)
>>>list3=set(list3)
>>>list1.issuperset(list2) False >>>list1.issuperset(list3) True

7.isdisjoint()

判断两个集合是否相交集,没有交集,则返回True

>>>list1=[1,3,5,6,7,8,5,3,1]
>>>list2=[22,33,44,55,66,6,7]
>>>list3=[88,99]
>>>list1=set(list1)
>>>list2=set(list2)
>>>list3=set(list3)
>>>list3.isdisjoint(list2) True #没有交集 >>>list1.isdisjoint(list2) False #有交集

基本操作

1.添加一项

>>>list4=set([34,46,67])
>>>list4.add("x")
>>>list4
#输出
{34, 67, 'x', 46}

2.添加多项

>>>list4=set([34,46,67])
>>>list4.update(["x","y","z"])
>>>list4
#输出
{34, 67, 'x', 'y', 46, 'z'}

3.删除一项

>>>list4=set([34, 67, 'x', 'y', 46, 'z'])
list4.remove("x")
print(list4)
#输出
{'z', 34, 67, 46, 'y'}

3.1删除一个任意元素

>>>list4=set([67, 'y', 'z', 46,34])
>>>list4.pop()
>>>list4
#输出
{67, 'y', 'z', 46}

3.2如果集合存在指定元素,则删除该元素删除值,不存在,也不会返回错误

>>>list4=set([67, 'y', 'z', 46])
>>>list4.discard(67)
>>>list4
#输出
{'y', 46, 'z'}

4.长度len()

>>>list4=set(['y',46,'z'])
>>>x=len(list4)
>>>x
#输出
2

5.测试x是否是list的成员(列表,字典,字符串,集合都可以使用这种方法判断)

list4=set(['y',46,'z'])
if"x" in list4:
  print("True")
else:
  print("False")
#输出
False

6.copy 浅copy

>>>list4=set([34,67,46])
>>>list5=list4.copy()
>>>list5
#输出
{34,67,46}
posted @ 2017-07-30 19:42  Mr.hu  阅读(81)  评论(0编辑  收藏  举报