python 集合

python 集合

集合是无序排列,不重复的数据组合体。可进行交、并、差等运算。

一、集合常见操作

1.创建集合

1.用一对大括号将多个用逗号分隔的数据括起来。

>>>a_set={0,1,2,3,4,5,6,7,8,9}
>>>a_set
{0,1,2,3,4,5,6,7,8,9}

2.使用集合对象set()方法创建集合,该方法可以将列表、元组、字符串数据转换成集合类型数据。

#将列表转换成集合(元组类似)
>>>b_set=set{['python','chemistry',2017,2.5]}
>>>b_set
{'python','chemistry',2017,2.5}
#将字符串转化成集合
>>>d_set=set{'python'}
>>>d_set
{'y','o','p','t','h','n'}

3.使用集合对象frozenset()方法创建一个冻结的集合,即该集合不能删除任何集合里的元素。他与set()方法创建的集合的区别是:rozenset()可以作为字典的key

>>>e_set=frozenset('a')
>>>e_set
>>>a_dict={e_set:1,'b':2}
>>>a_dict
{frozenset(['a']):1,'b':2}
>>>f_set=set('a')
>>>f_set
{'a'}
>>>b_dict={f_set:1,'b':2}
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    b_dict={f_set:1,'b':2}
TypeError: unhashable type: 'set'
#集合不允许有相同元素,若创建时有相同元素,python删除重复元素
>>>g_set={00012114555}
>>>g_set
{0,1,2,4,5}

2.访问集合

由于集合本身是无序的,所以不能为集合船舰索引或进行切片操作只能使用in、not in或循环遍历来访问或判断集合元素。

>>>b_set=set{['python','chemistry',2017,2.5]}
>>>b_set
{'python','chemistry',2017,2.5}
>>>2.5 in b_set
True
>>>2 in b_set
False
>>>for i in b_set:print(i,end=' ')
python chemistry 2017 2.5

3.删除集合

使用del删除集合。

>>>a_set={0,1,2,3,4,5,6,7,8,9}
>>>a_set
{0,1,2,3,4,5,6,7,8,9}
>>>del a_set
>>>a_set
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    a_set
NameError: name 'a_set' is not defined

4.更新集合

1.使用集合对象add()方法为集合添加元素。格式:s.add(x)

>>>b_set.add('math')
>>>b_set
{'python','chemistry',2017,2.5,'math'}

2.使用集合对象update()更新集合。

>>>s={'python','C','C++'}
>>>s.update{[1,2,3]}
>s
{'python','C','C++',1,2,3}

5.删除集合中的元素

1.使用集合对象remove()方法删除,格式:s.remove(x),x若不存在,提示出错信息。

>>>s={'python','C','C++',1,2,3}
>>>s.remove(1)
>>>s
{'python','C','C++',2,3}
>>>s.remove(0)
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    s.remove(0)
KeyError: 0

2.使用集合对象discard()方法删除集合元素。格式:s.discard(x),x若不存在,不提示出错信息。

>>>s.discard('C')
>>>s
{'python','C++',2,3}
>>>s.discard('abc')
>>>s
{'python','C++',2,3}

3.使用集合对象pop()删除集合中任意一个元素并返回该集合。

>>>s.pop()
1
>>>s
{'python','C++',2,3}

4.使用集合对象clear()方法删除集合所有元素。

>>>s.clear()
>>>s
set()

二、集合常用运算

1.交集

方法:s1&s2&···&sn,计算s1,s2,···,sn,这n个集合的交集。

>>>{0,1,2,3,4,5,6,7,8,9}&{0,2,4,6,8}
{8,0,2,4}
>>>{0,1,2,3,4,5,7,8,9}&{0,2,4,6,8}&{1,3,5,7,9}
set()                #交集为空集合

2.并集

方法:s1|s2|···|sn,计算s1,s2,····sn这n个集合的并集。

>>>{0,1,2,3,4,5,7,8,9}|{0,2,4,6,8}
{0,1,2,3,4,5,6,7,8,9}
>>>{0,1,2,3,4,5}|{0,2,4,6,8}
{0,1,2,3,4,5,6,8}

3.差集

方法:s1—s2—···—sn,计算s1,s2,····sn这n个集合的差集。

>>>{0,1,2,3,4,5,7,8,9}{0,2,4,6,8}
{13579}
>>>{0,1,2,3,4,5,6,7,8,9}-{0,2,4,6,8}-{2,3,4}
{1,5,9,7}

4.对称差集

方法:s1^ ···^sn,计算s1,s2,····sn这n个集合的对称差集。

>>>{0,1,2,3,4,5,7,8,9}^{0,2,4,6,8}
{1,3,5,7,9}
>>>{0,1,2,3,4,5,6,7,8,9}^{0,2,4,6,8}^{1,3,5,7,9}
set()

5.集合的比较

1.s1==s2:判断s1和s2集合是否相等。如果s1和s2集合具有相同的元素,则返回True;否则返回False。

>>>{1,2,3,4}=={4,3,2,1}
True

判断两个集合是否相等,只需判断其中的元素是否一致,与顺序无关。
2.s1!=s2:判断s1和s2集合是否不相等。
3.s1<s2:判断s1是否是s2的真子集。
4.s1<=s2:判断s1是否是s2的子集。
5…s1>s2:判断s1是否是s2的真超集。
6…s1>=s2:判断s1是否是s2的超集。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值