ITPub博客

首页 > 数据库 > 数据库开发技术 > Python中的集合

Python中的集合

原创 数据库开发技术 作者:阿黎逸阳的代码 时间:2020-05-02 09:20:39 0 删除 编辑
阿黎逸阳

  精选Python、SQL、R、MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验)。

初学Python时,有很多定义都比较模糊,不是特别理解,导致一到使用就卡壳。

本文致力用最简洁的语言、最清晰的例子,跟你一起理解Python中的集合函数。
本文目录
  1. 什么是集合

  2. 集合的定义和实例

    2.1 语法

    2.2 实例

  3. 集合的特点

    3.1 不能通过索引访问

    3.2 可以通过for循环调用集合中的元素

  4. 集合的更新

    4.1 用add方法添加一个集合成员

    4.2 用remove方法删除一个集合成员

    4.3 用update方法添加一个或多个集合成员

    4.4 用“-=”方法删除集合中的子集合

  5. 集合的运算

    5.1 两个集合求并集

    5.2 两个集合求交集

    5.3 两个集合求差集

    5.4 两个集合求差分

  6. 总结


一、什么是集合?

高中的时候我们就学过集合,Python中的集合与之概念类似,又有不同。

Python中的集合专门用于存储信息,存储的元素无序且不能重复,它用一对花括号{}定义,数据之间用逗号隔开。

Python中有两种不同的类型的集合:可变集合和不可变集合。

可变集合可以添加或删除元素,但可变集合存储的元素不能被哈希,因此不能用做字典的键。

不可变集合不能添加或删除元素,集合存储的元素元素可以被哈希,因此可以用做字典的键。

Python中集合之间也可以求并集、交集、差集、差分等运算。

二、集合的定义和实例

Python中用set和{}创建的集合是可变集合,用frozenset创建的是不可变集合。

不可变集合不可以增加、删除集合中的元素,即集合内容不可变。这类似于字符串和元组,如果试图改变,Python会报错。

不可变集合除了内容不能更改外,其他功能及操作和可变集合一样。
不可变集合有一个非常有用的实例,会专门写一篇文章进行介绍。接下来重点介绍可变集合。

 1  语法

set(object)
其中object可以是字符串,元组,列表,字典等对象。

 2  实例
实例1—(object为字符串)
set('阿黎逸阳')
得到结果:
{'逸', '阳', '阿', '黎'}

注:从实例1知,集合是无序的,把字符串拆成了一个一个的元素分别存储。

实例2—(object为元组)
set((1,1,2))

得到结果:

{1, 2}

注:从实例2知,集合中的元素不能重复,可以用集合去重。

实例3—(object为列表)
set(['好','好','学','习','天','天','向','上'])
得到结果:
{'上', '习', '向', '天', '好', '学'}

实例4—(object为字典)

set({'a':'1','b':'2','b':3})
得到结果:
{'a', 'b'}

注:从实例4知,当object是字典时,取出的是字典的键作为集合的值。


三、集合的特点

 特点1  不能通过索引访问

 集合是无序的,故不能通过索引访问。


 特点2  可以通过for循环调用集合中的元素

a = set([1, '希望','明天','会','更好',1])for i in a: print(i)
得到结果:
明天1会希望更好

四、集合的更新
对于可变集合,可以用内置的add方法添加一个成员、remove方法删除一个成员、update方法添加一个或多个成员。操作符“-=”用于删除集合中的子集合。

 1  用add方法添加一个集合成员

add方法可以添加一个集合成员,添加的对象可以是单个元素,也可以是单个字符串。但是不能是元组或列表等对象,即使元组或列表里的元素只有一个也会报错。

实例1—(添加单个数字)
b = {1,'c'}b.add(3)
得到结果:
{1, 3, 'c'}

实例2—(添加一个字符串)

b = {1,'c'}b.add('aaa')
得到结果:
{1, 3, 'aaa', 'c'}

 2  用remove方法删除一个集合成员
c= set([1, '希望','明天','会','更好',1])c.remove(1)
得到结果:
{'会', '希望', '明天', '更好'}

 3  用update方法添加一个或多个集合成员

实例1—(添加一个成员)

c= set([1, '希望','明天','会','更好',1])c.update('a')
得到结果:
{1, 'a', '会', '希望', '明天', '更好'}

实例2—(添加多个成员)

b = {1, 3, 5, 'aaa', 'c'}c = {'会', '希望', '明天', '更好'}b.update(c)
得到结果:
{1, 3, 5, 'aaa', 'c', '会', '希望', '明天', '更好'}

 4  用“-=”方法删除集合中的子集合

b = {1, 3, 5, 'aaa', 'c', '会', '希望', '明天', '更好'}c = {'会', '希望', '明天', '更好'}b -= c  #等价于b = b - c

得到结果:

{1, 3, 5, 'aaa', 'c'}

五、集合的运算

Python中集合之间也可以求并集、交集、差集、差分等运算。

 1  两个集合求并集
set1 = {'我','希望','你','幸福','快乐','安康'}set2 = {'我','希望','你','开心','快乐','健康'}set3 = set1 | set2  #两个集合中的元素合并去重
得到结果:
{'你', '健康', '安康', '希望', '幸福', '开心', '快乐', '我'}

 2  两个集合求交集
set1 = {'我','希望','你','幸福','快乐','安康'}set2 = {'我','希望','你','开心','快乐','健康'}set4 = set1 & set2  #两个集合中都有的元素
得到结果:
{'你', '希望', '快乐', '我'}

 3  两个集合求差集
set1 = {'我','希望','你','幸福','快乐','安康'}set2 = {'我','希望','你','开心','快乐','健康'}set5 = set1 - set2  #set1中的元素去除set2中有的元素
得到结果:
{'安康', '幸福'}
 4  两个集合求差分

集合的差分运算又叫对称差运算,是集合的异或运算。使用符号‘^’或函数symmetric_difference可以执行集合的差分运算。

在Python语言中,由不同时属于集合set1和set2的成员组成新的集合,叫集合的差分运算。
set1 = {'我','希望','你','幸福','快乐','安康'}set2 = {'我','希望','你','开心','快乐','健康'}set6 = set1^set2

得到结果:

{'健康', '安康', '幸福', '开心'}

六、总结

  • 1.Python中集合存储的元素无序且不能重复。

  • 2.Python中集合分为可变集合(用set和{}创建)和不可变集合(用frozenset创建)。可变集合可以添加或删除元素,不可变集合不能被修改。

  • 3.Python中集合不能通过索引访问,可以通过for循环调用集合中的元素。

  • 4.Python中集合可以通过add(添加一个集合成员)、remove(删除一个集合成员)、update(添加一个或多个集合成员)等方法对集合进行更新。

  • 5.Python中集合可以求并集、交集、差集、差分等运算。


-end-

往期回顾:

3D星空图
用python绘制皮卡丘
娱乐圈排行榜动态条形图绘制

最后附上我的联系方式:微信号、手机号(19967879837)
扫一扫加我,有问题欢迎咨询\(^o^)/~
“转发与在看是更好的支持”

原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-02-15

  • 博文量
    282
  • 访问量
    130893