1. Python3 中如何查看 set() 的内置方法

  1. help(set()) / help(set)
  2. dir(set()) / dir(set)

2. 少废话,上例子

(1) add()

  • 释义:
  1. 向集合中添加一个元素
  2. 若元素已经存在,则此操作无效
  • 示例:
# 例1.1 向集合内添加元素

s1_1 = {1}
s1_1.add(2) print(s1_1)
  • 运行结果

{1, 2}


# 例1.2

s1_2 = {1}
s1_2.add(3, 4)
  • 运行结果

TypeError……add() takes exactly one argument (2 given)

报错原因:add() 只能加一个元素。

想要一次加入多个元素请看 (17) update()。


# 例1.3

s1_3 = {1, 2, 3}
s1_3.add(2) print(s1_3)
  • 运行结果

{1, 2, 3}

加入一个已有的元素不报错。


(2) 又见清理大师 clear()

  • 释义:
  1. 删除集合中所有的元素
  • 示例:
# 例2

s2 = {1,2,3,4,5}
print(s2)
print(id(s2)) s2.clear()
print(s2)
print(id(s2))
  • 运行结果

{1, 2, 3, 4, 5}

2229866605480

set()

2229866605480

id() 显示 clear() 是原地清空。

列表被清空后仅输出 [],集合被清空后输出 set()。


(3) 又见拷贝君 copy()

  • 释义:
  1. 返回集合的浅拷贝
  2. 关于深拷贝与浅拷贝,之前挖过坑,编号 Py006-3
  • 示例:
# 例3

s3_1 = {1, 2, 3, 4, 5}
s3_2 = s3_1.copy() print(s3_1)
print(id(s3_1)) print(s3_2)
print(id(s3_2))
  • 运行结果

{1, 2, 3, 4, 5}

2229867508456

{1, 2, 3, 4, 5}

2229868024776


(4) 找茬君 difference()

  • 释义:
  1. 将两个或多个集合的差异作为新集合返回
  2. 所有返回的元素都是基于使用 difference() 的那个集合(不是 difference() 括号中的那个集合)
  • 示例:
# 例4

s4_1 = {1, 2, 3}
s4_2 = {0, 1, 2, 3, 4}
s4_3 = {6, 7, 8, 9}
s4_4 = {2}
s4_5 = {3, 4} print(s4_1.difference(s4_2))
print(s4_1.difference(s4_3))
print(s4_1.difference(s4_4))
print(s4_1.difference(s4_5)) print(s4_1.difference(s4_4, s4_5))
print(s4_1.difference(s4_3, s4_4, s4_5))
  • 运行结果

set()

{1, 2, 3}

{1, 3}

{1, 2}

{1}

{1}

从结果看:

  1. 若 A 是 B 的子集,则 A.difference(B) 输出 set()
  2. 若 A 与 B 没有交集,则 A.difference(B) 输出 A 本身
  3. 若 B 是 A 的子集,则 A.difference(B) 输出 A 中与 B 不同的元素,并用大括号括起来
  4. 若 A 与 B 有交集,又各自有不同的元素,则 A.difference(B) 是将 A 中除去 A 与 B 的交集后的元素输出,并用大括号括起来
  5. A 可以与 (B1, B2, ……, Bn) 使用 difference(),先求 (B1, B2, ……, Bn) 的并集,再按上面 1~4 运行
  6. 感觉像是在做概率论中的古典概型

(5) difference_update()

  • 释义:
  1. 从此集合中移除所有与其他集合重复的元素
  • 示例:
# 例5

s5_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s5_2 = {"John Diggle", "Dinah Drake", "Constantine"} s5_1.difference_update(s5_2) print(s5_1)
  • 运行结果

{'YorkFish', 'Felicity Smoak'}

difference_update() 是更新原集合;

difference() 是返回值。


(6) discard()

  • 释义:
  1. 如果元素是是集合的成员,则将其从集合中移除
  2. 如果元素不是集合的成员,则不执行任何操作
  • 示例:
# 例6

s6 = {1, 2, 3, 4, 5}

s6.discard(1)
print(s6) s6.discard(6)
print(s6)
  • 运行结果

{2, 3, 4, 5}

{2, 3, 4, 5}


(7) intersection()

  • 释义:
  1. 将两个集合的交集作为新集合返回
  • 示例:
# 例7

s7_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s7_2 = {"John Diggle", "Dinah Drake", "Constantine"} s7_3 = s7_1.intersection(s7_2) print(s7_3)
  • 运行结果

{'Dinah Drake'}


(8) intersection_update()

  • 释义:
  1. 用自身和另一个集合的交集更新集合
  • 示例:
# 例8

s8_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s8_2 = {"John Diggle", "Dinah Drake", "Constantine"} s8_1.intersection_update(s8_2)
s8_3 = s8_1.intersection_update(s8_2) print(s8_1)
print(s8_3)
  • 运行结果

{'Dinah Drake'}

None

s8_3 接收到的 None 应该是 intersection_update() 返回的。


(9) isdisjoint()

  • 释义:
  1. 如果两个集合的交集为空集,则返回 True;否则,返回 False
  • 示例:
# 例9

s9_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s9_2 = {"John Diggle", "Dinah Drake", "Constantine"}
s9_3 = {"Rorschach", "Comedian", "Nite Owl II"} print(s9_1.isdisjoint(s9_2))
print(s9_1.isdisjoint(s9_3))
  • 运行结果

False

True


(10) issubset()

  • 释义:
  1. 形如 A.issubset(B) 时,如果集合 A 是集合 B 的子集,则返回 True;否则,返回 False
  • 示例:
# 例10

s10_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s10_2 = {"Dinah Drake", "Felicity Smoak"}
s10_3 = {"Rorschach", "Comedian", "Nite Owl II"} print(s10_2.issubset(s10_1))
print(s10_3.issubset(s10_1))
  • 运行结果

True

False


(11) issuperset()

  • 释义:
  1. 与 issubset() 相反
  2. 形如 A.issuperset(B) 时,如果集合 A 是集合 B 的超集,则返回 True;否则,返回 False
  • 示例:
# 例11

s11_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s11_2 = {"Dinah Drake", "Felicity Smoak"}
s11_3 = {"Rorschach", "Comedian", "Nite Owl II"} print(s11_1.issuperset(s11_2))
print(s11_1.issuperset(s11_3))
  • 运行结果

True

False


(12) 又见 pop()

  • 释义:
  1. 删除并且返回集合中的一个元素
  2. 如果集合为空,则抛出异常 KeyError (关于异常,挖个坑,日后填平,编号 Py014-1)
  3. 与列表不同,集合的 pop() 从某种程度上说是随机的
  • 示例:
# 例12

s12_1 = {1, 2, 3, 4, 5, 6}
s12_2 = s12_1.pop() print(s12_2)
print(s12_1)
  • 运行结果

1

{2, 3, 4, 5, 6}


(13) 又见 remove()

  • 释义:
  1. 从集合中删除元素;但它必须是该集合的成员
  2. 如果需要删除的元素不是该集合的成员,则抛出异常 keyError
  • 示例:
# 例13.1

s13_1 = {1, 2, 3, 4, 5}
s13_2 = s13_1.remove(1) print(s13_2)
print(s13_1)
  • 运行结果

None

{2, 3, 4, 5}


# 例13.2 接着例13.1

s13_3 = s13_1.remove(2, 3)
print(s13_3)
  • 运行结果

TypeError……remove() takes exactly one argument (2 given)

remove() 一次只接收一个参数,给多了不行。


(14) symmetric_difference()

  • 释义:
  1. 将两个集合的“对等差分”作为新集合返回
  2. 对等差分:不重复部分
  • 示例:
# 例14

s14_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s14_2 = {"John Diggle", "Dinah Drake", "Constantine"} s14_3 = s14_1.symmetric_difference(s14_2) print(s14_3)
  • 运行结果

{'Felicity Smoak', 'John Diggle', 'Constantine', 'YorkFish'}


(15) symmetric_difference_update()

  • 释义:
  1. 使用自身和另一个集合的“对等差分”更新集合
  • 示例:
# 例15

s15_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s15_2 = {"John Diggle", "Dinah Drake", "Constantine"} s15_1.symmetric_difference_update(s15_2) # 此处与 symmetric_difference() 有别 print(s15_3)
  • 运行结果

{'John Diggle', 'Felicity Smoak', 'Constantine', 'YorkFish'}

symmetric_difference() 是将对等差分返回给一个新的集合;

symmetric_difference_update() 是用对等差分更新原有集合。


(16) union()

  • 释义:
  1. 将集合的并集作为新的集合返回
  • 示例:
# 例16

s16_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s16_2 = {"John Diggle", "Dinah Drake", "Constantine"} s16_3 = s16_1.union(s16_2) print(s16_3)
  • 运行结果

{'John Diggle', 'YorkFish', 'Dinah Drake', 'Constantine', 'Felicity Smoak'}


(17) update()

  • 释义:
  1. 使用自身和其他集合的并集更新集合
  • 示例:
# 例17

s17_1 = {"YorkFish", "Felicity Smoak", "Dinah Drake"}
s17_2 = {"John Diggle", "Dinah Drake", "Constantine"} s17_1.update(s17_2) print(s17_1)
  • 运行结果

{'Constantine', 'Felicity Smoak', 'John Diggle', 'Dinah Drake', 'YorkFish'}


update() 与 union() 的区别就像 symmetric_difference_update() 与 symmetric_difference() 的区别。

update() 是更新原有的集合;

union() 是将结果返回给一个新的集合。

[Python3] 014 集合的内置方法的更多相关文章

  1. day07-列表类型/元组类型/字典类型/集合类型内置方法

    目录 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 列表类型内置方法 用来存多个元素,[]内用逗号隔开任意数据类型的元素 1. list()强制类型转换 print(list ...

  2. day09-2 字典,集合的内置方法

    目录 字典的内置方法 作用 定义方式 方法 优先掌握 需要掌握 存储一个值or多个值 有序or无序 可变or不可变 集合的内置方法 作用 定义方式 方法 存储一个值or多个值 有序or无序 可变or不 ...

  3. [Python3] 015 冰冻集合的内置方法

    目录 0. 前言 英文名 元素要求 使用限制 返回 方法数量 1. 如何查看 frozenset() 的内置方法 2. 少废话,上例子 2.1 copy() 2.2 difference() 2.3 ...

  4. [Python3] 017 字典的内置方法

    目录 1. Python3 中如何查看 dict() 的内置方法 2. 少废话,上例子 (1) 清理大师 clear() (2) 拷贝君 copy() (3) get(key, default=Non ...

  5. Python3.6 字典的内置方法

    1.dict.clear(self) 删除字典内所有元素 2.dict.copy(self) 返回一个字典的浅复制,拷贝父对象,不会拷贝对象的内部的子对象 3.dict.fromkeys(self,  ...

  6. what's the python之基本运算符及字符串、列表、元祖、集合、字典的内置方法

    计算机可以进行的运算有很多种,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.字符串和列表的算数运算只能用+和*,字典没有顺序,所以不能进行算数运算和比较运算.比较运算中= ...

  7. day007 列表类型、元祖类型、 字典类型、 集合类型的内置方法

    目录 列表数据类型的内置方法 作用 定义方式 优先掌握的方法 需要掌握的方法 元祖类型的内置方法 作用 定义方式 优先掌握的方法(参考列表方法) 字典类型的内置方法 作用 定义方式 优先掌握的方法 需 ...

  8. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  9. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

随机推荐

  1. 〇——什么是SHELL

    在这段时间里中我们了解一下SHELL编程. 什么是shell shell是Linux的命令解释器,用于解释用户对操作系统的操作. 用shell解释的Linux命令有很多,可以通过cat/etc/she ...

  2. 九、ARM 汇编与 C 的混合编程

    9.1 ARM 汇编与 C 的混合编程 9.1.1 内嵌汇编 __asm __asm("指令")例如关闭/打开总中断开关 CPSR __asm //使用 C 中变量名代替寄存器 { ...

  3. Comet OJ - 模拟赛 #2 Day1 比赛总结

    比赛情况 40 + 60 + 0 = 100pts 哎,T1做错了,没有对拍.如果发现错误 \(=>\) 改正 \(=>\) 40->100pts,160pts \(=>\) ...

  4. postman-鉴权

    概念 Cookie和鉴权的区别,cookie一般指缓存在本地的数据:鉴权一般指验证用户是否拥有访问系统的权利 鉴权分类 Basic auth:基础鉴权,数据没有加密可明文显示,一般在测试环境使用,不在 ...

  5. 千呼万唤始出来——DataV私有部署功能

    DataV的开发者们,今天进入你的用户中心,就会发现有一个小惊喜默默的在等待着你.那就是——私有部署功能上线啦! 一直以来私有部署都是一些有需要的小伙伴所望尘莫及的,毕竟高贵的身份摆在那里,现在不用再 ...

  6. luoguP1186 玛丽卡 x

    P1186 玛丽卡 题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道 ...

  7. 【bzoj3277&&3474】串

    *题目描述: 字符串是oi界常考的问题.现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身). *输入: 第一行两个整数n,k.接下来n行 ...

  8. C# 字符串的长度问题

    string str = "aa奥奥"; 如果直接取 str.length,取的就是字符的长度,一个汉字也是一个字符,长度就是4. 一个汉字是两个字节,如果需要统计字节数,可以用下 ...

  9. css内容过长显示省略号的几种解决方法

    单行文本(方法一): 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) elli ...

  10. 深入理解BFC和IFC

    1. 为什么会有BFC和IFC 首先要先了解两个概念:Box和formatting context: Box:CSS渲染的时候是以Box作为渲染的基本单位.Box的类型由元素的类型和display属性 ...