首页 > 其他 > 详细

第27讲:集合—在我的世界里,你就是唯一

时间:2020-07-23 22:17:45      阅读:75      评论:0      收藏:0      [点我收藏+]

一 可变集合 set

1 概念:集合(set)是一个无序的不重复元素序列。无序不重复的特点决定它存在以下的应用场景:去重处理、关系测试

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

3 语法:parame = {value01,value02,...}  或者   set(value)

4 集合的相关操作:https://www.cnblogs.com/linupython/p/6561700.html

  • 创建:
    • 使用 {} 创建:setname = {element1,element2,...,elementn}      a = {1,2,3,4,5}
    • set()函数创建集合:setname = set(iteration)         b = set([6,7,8,9,10])
  • 访问:
    • 由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素
    • 但是您可以使用 for 循环遍历 set 项目,或者使用 in 关键字查询集合中是否存在指定值
  • 添加:
    • add():添加一个元素到指定的集合,每次只能添加一个。需要注意的是使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。 a.add(0)
    • update():添加多个元素到指定集合,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。 a.update([2,3,7])
  • 删除:
    • remove():删除集合中指定的对象,一次只能删除一个,如果该对象不存在则报错   a.remove(3)
    • discard():与remove()类似,也是删除指定的对象,一次只能删除一个,但是如果该对象不存在时不报错。    a.discard(0)
    • pop():删除集合中任意一个对象,注意不能指定。   a.pop()
    • clear():清空集合。  a.clear()
    • del语句:彻底删除集合
  • 集合长度:获取集合中元素,通过len方法实现。len(a)
  • 集合的复制:copy() 方法用于拷贝一个集合(重新创建了一个集合)。b = a.copy()

5 判断两个集合关系的内置方法——关系测试常见操作

技术分享图片

  • difference()
    • 功能:用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
    • 语法:set1.difference(set2)或set1 - set2
  • issubset()
    • 功能:判断集合set1是否为set2的子集,返回布尔值。
    • 语法:set1.issubset(set2)
  • issuperset()
    • 功能:判断set1是否为set2的父集。
    • 语法:set1.issuperset(set2)
  • isdisjoint()
    • 功能:判断set1和set2是否存在交集, 如果不存在返回True, 存在则返回False.
    • 语法:set1.isdisjoint(set2)
  • symmetric_difference()
    • 功能:返回set1和set2的对称式差集,相当于执行set1.difference(set2)和set2.difference(set1),以新的set集合形式返回set1和set2中差异部分元素(不在两者中同时存在)集合(仅在set1和set2中出现过一次的元素不影响原set1和set2)。
    • 语法:set1.symmetric_difference(set2)或set1 ^ set2
  • symmetric_difference_update()
    • 功能:返回set1和set2的对称式差集,并覆盖更新原set1集合(原来被调用操作的对象),即执行set1 = set1.symmetric_difference(set2)
    • 语法:set1.symmetric_difference(set2)
  • intersection()
    • 功能:交集运算,以set方式返回set1和set2的交集部分(同时存在的元素),不影响原集合set1和set2.
    • 语法:set1.intersection(set2)或set1 & set2
  • intersection_update()
    • 功能:执行交集运算,并将结果覆盖更新原集合set1(原来被调用操作的对象)。
    • 语法:set1.intersection_update(set2)
  • union()
    • 功能:执行并集计算,合并set1和set2中的对象并做去重处理,最后以集合形式返回结果。
    • 语法:set1.union(set2)或set1 | set2
  • <=
    • 功能:判断set1中的每个元素是否都在set2中,即判断set1是否为set2的子集,等同于set1.issubset(set2)
    • 语法:set1 <= set2

二 不可变集合 frozenset()

1 定义:不可变集合就是一个无序的不可变的集合

2 语法:frozenset(value),其中value必须是可迭代对象

3 与集合set的区别:一旦创建就不可以改变。

4 用途:用来作为字典的键

5与tuple的区别:在于无序,元素不可重复,且元素只能是不可变类型

第27讲:集合—在我的世界里,你就是唯一

原文:https://www.cnblogs.com/luoxun/p/13368333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!