Python基础之集合set

一、什么是集合

1、定义集合

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

2、创建集合

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

>>> myset = set()
>>> print(myset)
set()
>>> print(type(myset))


>>> myset2 = {1, 2, 3, 4}
>>> print(myset2)
{1, 2, 3, 4}
>>> print(type(myset2))


>>> myset3 = {}
>>> print(type(myset3))

3、集合的特点:不重复的、无序的、确定性的,所以会自动去重

>>> myset = set([1, 2, 3, 1, 2, 3, 4, 5, 6, 6, 5])
>>> print(myset)
{1, 2, 3, 4, 5, 6}

二、集合是查询、添加、修改和删除

1、查询:集合无法通过下标索引查询

2、添加单个元素add(x) ,添加单个或多个元素s.update( x ),x 有多个用逗号,分开。

>>> myset1 = {1, 2, 3, 4}
>>> myset1.add(9)
>>> print(myset1)
{1, 2, 3, 4, 9}

>>> myset1.update('5', '6')
>>> print(myset1)
{2, 4, 5, 6, 7, 8, 9, '5', '6'}

3、修改:集合是不可变类型无法修改元素;

可以获取交集、差集、对称差集

intersection获取2个set的交集

>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset2.intersection(myset1))
{2, 4}

difference获取2个set的差集

>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset2.difference(myset1))
{8, 5, 6, 7}

symmetric_difference对称差集,获取两个set互相没有的值 

>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset2.symmetric_difference(myset1))
{1, 3, 5, 6, 7, 8}

可使用union合并多个set

>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset1.union(myset2))
{1, 2, 3, 4, 5, 6, 7, 8}

4、删除

discard (x)删除集合中指定的元素,set当中没有的话不会报错

>>> myset = {"1", "a", "b", "c", "w"}
>>> myset.discard("a")
>>> print(myset)
{'c', 'b', '1', 'w'}

remove(x)删除元素,remove的元素在set当中没有的话会报错,而discard不会

>>> myset = {"1", "a", "b", "c", "w"}
>>> myset.remove(2)
>>> print(myset)
Traceback (most recent call last):
  File "E:\myset.py", line 2, in 
    myset.remove(2)
KeyError: 2

>>> myset.remove("w")
>>> print(myset)
{'c', 'b', '1', 'a'}

pop()方法用于随机移除一个元素

>>> myset = {"1", "a", "b", "c", "w"}
>>> myset.pop()
>>> print(myset)
{'c', 'b', 'a', 'w'}

你可能感兴趣的:(python基础,python)