Python-Day 3-集合

这篇主要记录学习集合的心得。

一、概念

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

parame = {value01,value02,...}  #方法1
set(value) #方法2  

集合去重

>>> name1=[1,3,4,5,6,72,4,]
>>> name1=set(name1)
>>> print(name1)
{1, 3, 4, 5, 6, 72}er  

二、集合运算

1、交集(intersection())或者(&)

>>> name2=[3,4,5,6,7,3,6]
>>> name2=set(name2)
>>> name1.intersection(name2)
{3, 4, 5, 6}
>>> name1&name2
{3, 4, 5, 6}

2 、并集(union())或者(|) 

>>> name1.union(name2)
{1, 3, 4, 5, 6, 7, 72}
>>> name1|name2
{1, 3, 4, 5, 6, 7, 72}

3、差集(difference())或者(-)

>>> name1.difference(name2)
{72, 1}
>>> name1-name2
{72, 1}

4 、对称差集(symmetric_difference())或者(^)

>>> name1.symmetric_difference(name2)
{1, 7, 72}
>>> name1^name2
{1, 7, 72}

5、是否是子集issubset()或者(<=)

>>> name1.issubset(name2)
False
>>> name1<=name2
False

6、是否是父集n或者(>=)  

>>> name1.issuperset(name2)
False
>>> name1>=name2
False

7、sdisjoint()

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

>>> name3=[3,6]
>>> name3=set(name3)
>>> name2.isdisjoint(name3)
False
>>> name3.isdisjoint(name2)
False
>>> name4=[100]
>>> name4=set(name4)
>>> name1.isdisjoint(name4)
True

三、基本操作

1、添加(add())

>>> name4=[100]
>>> name4=set(name4)
>>> name4.add(100)#添加已存在,不报错
>>> name4
{100}
>>> name4.add(99) #添加不存在,添加一个新的数值
>>> name4
{99, 100}

 2、添加多项(update())

>>> name4.update([98,97,95])
>>> name4
{97, 98, 99, 100, 95}

3、删除(remove(),pop(),discard())

3.1 remove()

用remove删除时,当元素不存在,会报错

>>> name4.remove(100) ##删除不存在的元素,会报错
>>> name4
{97, 98, 99, 95}
>>> name4.remove(55)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 55

3.2 pop()

pop是随机删除集合中的某个元素,并且打印

>>> name4.pop()
97

3.3 discard()

用discard删除不存在的元素,不会出现报错

>>> name4
{97, 98, 99, 100, 95}
>>> name4.discard(9)
>>> name4.discard(99)  

4、长度(len())

>>> name4
{98, 95}
>>> len(name4)
2 

5、x in sx not in s 

x in s 测试 x 是否是 s 的成员
>>> name4
{98, 95}
>>> 100 in name4   #测试 x 是否是 s 的成员
False
>>> 98 in name4
True

x not in s:测试 x 是否不是 s 的成员

>>> 99 not in name4
True
>>> 98 not in name4
False

  

原文地址:https://www.cnblogs.com/bianfengjie/p/10732252.html