(MAX第十篇)Python集合的创建以及操作(全)

本文介绍了Python集合的定义、创建(包括空集合、由列表和元组创建)、集合的性质(无序和去重)、集合的子集和超集概念及其判断方法、元素访问、集合的增删复制操作,以及并集、交集、差集、对称差集等集合运算。
摘要由CSDN通过智能技术生成

1. 集合的定义

在数学中集合的定义:具有相同性质对象的集合体,成为一个集合。元素可以是数值,文字,坐标等等对象
在Python中集合的定义类似,是一个含有不重复元素的无序的组合。

2. 集合的创建及性质使用

2.1 空集合

可以使用大括号{}或者set()来创建空集合

>>> a={
   }
>>> a
{
   }
>>> b=set()
>>> b
set()

2.2 集合创建

2.2.1 对list和tuple创建

可以对list和tuple使用set()创建集合:set(list)set(tuple).

>>> set1=set([1,4,5,'a','b'])
>>> set1
{
   1, 4, 5, 'b', 'a'}
>>> set2=set((-3,4,'b','c'))
>>> set2
{
   'c', 4, -3, 'b'}

2.2.2 set(only_one_obj)问题

当使用set()创建集合,而且括号里只有一个字符串对象时,对象加括号和不加括号创建的集合是一样的,是把字符串分割为单个字符组成的集合。

>>> set(('Python'))
{
   'y', 'o', 't', 'h', 'n', 'P'}
>>> set('Python')
{
   'y', 'o', 't', 'h', 'n', 'P'}

如果想创建只有一个元素‘Python’的集合,则可以这样:set((obj,))或者set([obj])

>>> set(('Python',)) #这个只有一个元素的元组创建一样
{
   'Python'}
>>> set(['Python']) #用列表的形式则不会出现上面情况
{
   'Python'}
>>> set({
   'Python'}) #可以直接加大括号
{
   'Python'}

2.3 集合性质:无序和去重

集合本身是无序的,顺序不一样,但是集合不变,还是相等的。
集合的另一个重要的性质是:互异性,也就是说元素是不重复的。那么我们可以利用这个性质把list或者tuple中重复的元素删除(去重)。

>>> set([1,2,2,2,2,3,3,3,4])
{
   1, 2, 3, 4}
>>> set(('Max','Max','Kiki','Kiki'))
{
   'Max', 'Kiki'}

2.4 集合中不能加入可变类型数据

集合不存在可变类型的数据元素。

>>> set([1,2,['a','b'],5]) #list是可变数据类型
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    set([1,2,['a','b'],5])
TypeError: unhashable type: 'list'

但是元组tuple是不可变类型。

>>> set((1,2,(3,4),5)) #(3,4)是不可变类型,可以把他看作坐标。
{
   1, 2, (3, 4), 5}

3. 集合子集和超集

如果一个集合中的所有的元素为另一个集合中的元素,那么前一个集合就是后一个集合的子集,后一个集合就是前一个集合的超集。
真子集指子集的元素不是超集的全部元素,真超集指超集的元素多余子集的元素。
我们经常需要判断两个集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值