七、 python中的数据类型——集合

2016-01-24  本文已影响253人  Davidham3

集合(set)

集合与字典类似,但里面的元素不是键值对了。它是一个无序的,不同元素组成的集合。里面所有的元素都互不重复。

1. 创建集合

集合不能直接定义,只能通过强制类型转换间接定义。比如

>>> a = [1, 2, 3, 2]  #定义列表a
>>> b = set(a)  #将a转换为列表后赋给b
>>> print(b)  #打印b
{1, 2, 3}
>>> print(type(b))  #打印b的类型
<class 'set'>

我们可以发现,集合与字典都是用花括号括起来的,元素与元素间用逗号隔开,不同的是,集合内的元素都是单一的,不是键值对。
它的特点是不存在重复的元素。因此有些时候可以用其来删掉重复的元素。

2. 添加元素set.add(value)

集合自带了add方法,可以通过此方法向集合中加入元素

>>> a = set([1, 2, 3, 4, 3])  #创建集合a
>>> a.add(5)  #向集合a中加入5
>>> print(a)
{1, 2, 3, 4, 5}
>>> a.add(3)  #向集合a中加入3
>>> print(a)
{1, 2, 3, 4, 5}

我们可以看到,当要加入的元素已经在集合中存在后,使用add加入后是不会有变化的。

3. 删除元素set.remove(value)

集合自带了remove方法,用来删除元素

>>> a = set([1, 2, 3, 4, 3])  #创建集合a
>>> print(a)  #打印集合a
{1, 2, 3, 4}
>>> a.remove(3)  #删除集合a中的3
>>> print(a)  #打印集合a
{1, 2, 4}

4. 集合的操作

集合与数学上的集合一样,可以求两个集合的交集,并集,差集,对称差集

  1. 交集&
    使用&可以求得两个集合的交集
>>> a = set([1, 2, 3])  #创建集合a
>>> b = set([1, 2, 4])  #创建集合b
>>> print(a & b)  #打印a与b的交集
{1, 2}
  1. 并集|
    使用|可以求得两个集合的并集
>>> a = set([1, 2, 3])  #创建集合a
>>> b = set([1, 2, 4])  #创建集合b
>>> print(a | b)  #打印a与b的并集
{1, 2, 3, 4}
  1. 差集-
    使用-可以求得两个集合的差集,a-b即为,求属于a,不属于b的元素
>>> a = set([1, 2, 3])  #创建集合a
>>> b = set([1, 2, 4])  #创建集合b
>>> print(a - b)  #打印a与b的差集
{3}
>>> print(b - a)  #打印b与a的差集
{4}
  1. 对称差集^
    可以使用^求两个集合的对称差集。
    对称差集是集合a与b中所有不属于A∩B的元素的集合,即在a,b中出现,但不同时出现的元素的集合。
>>> a = set([1, 2, 3])  #创建集合a
>>> b = set([1, 2, 4])  #创建集合b
>>> print(a ^ b)  #打印a与b的对称差集
{3, 4}

5. 其他方法

  1. 查看集合内元素的个数len()
    函数len()对集合也适用。
>>> a = set([1, 2, 3, 4, 3])  #创建集合a
>>> print(len(a))  #打印集合a内元素的个数
4
  1. 复制一个集合set.copy()
    集合自带一个copy()方法,与此前的列表复制的方法一样
>>> a = set([1, 2, 3, 4, 3])  #创建集合a
>>> b = a.copy()  #将a复制后赋给b
>>> print(a)  #打印集合a
{1, 2, 3, 4}
>>> print(b)  #打印集合b
{1, 2, 3, 4}
  1. 清除集合内所有的元素set.clear()
    与此前列表和字典的clear相同
>>> a = set([1, 2, 3, 4, 3])  #创建集合a
>>> print(a)  #打印集合a
{1, 2, 3, 4}
>>> a.clear()  #清除a中所有的元素
>>> print(a)  #打印集合a
set()

关于更多集合的信息,可以使用help(set)查看帮助信息。

上一篇 下一篇

猜你喜欢

热点阅读