Python3学习之路~2.6 集合操作

Posted zhengna

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3学习之路~2.6 集合操作相关的知识,希望对你有一定的参考价值。

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

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

常用操作

技术分享图片
>>> list1 = [1,4,5,7,3,6,7,9]
>>> list1=set(list1) # 将list变为set,自动去重
>>> print(list1,type(list1))
{1, 3, 4, 5, 6, 7, 9} <class set>

>>> s = set([3,5,9,10])    #创建一个数值集合
>>> t = set("Hello")       #创建一个唯一字符的集合
>>> 
>>> t.add(x) # 添加一项 
>>> print(t)
{o, x, e, l, H}

>>> s.update([10,37,42]) # 在s中添加多项
>>> print(s)
{3, 37, 5, 9, 10, 42}

>>> t.remove(H) # 使用remove()可以删除一项
>>> print(t)
{o, x, e, l}

>>> t.pop() # 随机删除,必须无参
o
>>> print(t)
{x, e, l}

>>> t.discard(e) # 使用discard()删除
>>> print(t)
{x, l}

>>> len(s) # set的长度
6

>>> x in s # 测试x是否是s的成员  
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name x is not defined

>>> x not in s # 测试x是否不是s的成员  
True

>>> print(s)
{3, 37, 5, 9, 10, 42}
>>> y=set([3,5,9,8,4])
>>>
>>> s<=y
False
>>> s.issubset(y) # 同s<=y,测试是否s中的每一个元素都在y中 
False

>>> s>=y
False
>>> s.issuperset(y) # 同s>=y,测试是否y中的每一个元素都在s中   
False

>>> s&y
{9, 3, 5}
>>> s.intersection(y) # 同s&y,交集,返回一个新的set包含s和y中的公共元素 
{9, 3, 5}

>>> s|y
{3, 4, 37, 5, 8, 9, 42, 10}
>>> s.union(y) # 同s|y,并集,返回一个新的set包含s和y中的每一个元素
{3, 4, 37, 5, 8, 9, 42, 10}

>>> s-y 
{10, 42, 37}
>>> s.difference(y) # 同s-y,差集(项在s中,但不在y中),返回一个新的set包含s中有但是y中没有的元素
{10, 42, 37}

>>> s^y
{4, 42, 37, 8, 10}
>>> s.symmetric_difference(y) # 同s^y,对称差集(项在y或s中,但不会同时出现在二者中),返回一个新的set包含s和y中不重复的元素  
{4, 42, 37, 8, 10}

>>> s.copy() #返回 set “s”的一个浅复制
{3, 42, 37, 5, 9, 10}
View Code

 

以上是关于Python3学习之路~2.6 集合操作的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

python3.6 基础之路 —— Sets集合

Python3学习之路~3.1 函数基本语法及特性返回值参数局部与全局变量

Python3学习之路~6.1 编程范式:面向过程 VS 面向对象

Python3学习之路~7.2 类的特殊成员方法

python3的学习之路十四IO编程