集合具有唯一性(集合中的元素各不相同),无序性,确定性(集合中的元素是不可改变的,不能是列表,字典以及集合本身)

    1.add(self, *args, **kwargs),union(self, *args, **kwargs),update(self, *args, **kwargs)

      add方法:向字典中添加一个元素,当字典中存在这个元素时,不做任何操作(只能添加一个元素)

      union方法:传入一个可迭代的参数,union方法将迭代出里面的元素,更新到字典的副本中,不改变原字典(传入一个可迭代对象,添加多个元素,原字典不变)

      update方法:与union方法类似,不同的是update方法修改原字典(传入一个可迭代对象,添加多个元素,修改原字典)

1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set1.add('php')
3 >>> set1
4 {'c', 'c++', 'php', 'python', 'java'}
5 >>> set1.add('php')
6 >>> set1
7 {'c', 'c++', 'php', 'python', 'java'}
 1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set2 = {'python', 'c', 'php'}
3 >>> set1.union(set2)
4 {'java', 'c', 'c++', 'php', 'python'}
5 >>> set1.union(['linz'])
6 {'c', 'c++', 'python', 'java', 'linz'}
7 >>> set1.union('linz')
8 {'c', 'c++', 'l', 'i', 'python', 'java', 'n', 'z'}
9 #set1不发生改变
10 >>> set1
11 {'java', 'c', 'c++', 'python'}
1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set1.update({'java', 'php'})
3 >>> set1
4 {'java', 'c', 'c++', 'php', 'python'}
5 >>> set1.update('123')
6 >>> set1
7 {'java', 'c', 'c++', '1', '3', 'php', '2', 'python'}

    2.clear(self, *args, **kwargs)

    清空字典中的所有元素

1 >>> set1 = {'java', 'c', 'c++', '1', '3', 'php', '2', 'python'}
2 >>> set1.clear()
3 >>> set1
4 set()

    3.copy(self, *args, **kwargs)

    与列表中的copy方法类似,返回字典的副本,同样的也是浅复制

1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set1.copy()
3 {'java', 'c', 'c++', 'python'}
4 >>> set2 = set1.copy()
5 >>> set2
6 {'java', 'c', 'c++', 'python'}

     4.difference(self, *args, **kwargs) 与 difference_update(self, *args, **kwargs)

    求两个集合的差集。difference方法不修改set1,返回一个差集的字典副本;而difference_update方法直接修改set1,等于差集

1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set2 = {'c++', 'go', 'c', 'php'}
3 >>> set1.difference(set2)
4 {'java', 'python'}
1 #set1发生改变
2 >>> set1.difference_update(set2)
3 >>> set1
4 {'java', 'python'}

    5.discard(self, *args, **kwargs),pop(self, *args, **kwargs),remove(self, *args, **kwargs)

      pop方法随机删除集合中的一个元素,当集合为空的时候程序报错

      discard从集合中移除特定元素。如果元素不是该集合成员,则什么也不做。

      remove从一个集合中移除一个元素,这个元素必须是集合的一个成员。如果元素不是成员,则引发键错误。

>>> set1 = {'python', 'java', 'c', 'c++'}
>>> set1.pop()
'java'
#当集合为空集时,程序报错
>>> se1 = {}
>>> se1.pop()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 arguments, got 0
1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set1.discard('python')
3 >>> set1
4 {'java', 'c', 'c++'}
5 #删除'python'之后,再次删除,程序不做任何事情
6 >>> set1.discard('python')
7 >>> set1
8 {'java', 'c', 'c++'}
1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set1.remove('python')
3 >>> set1
4 {'java', 'c', 'c++'}
5 #删除'python'之后,再次删除,程序报错
6 >>> set1.remove('python')
7 Traceback (most recent call last):
8 File "<stdin>", line 1, in <module>
9 KeyError: 'python'

    6.intersection(self, *args, **kwargs) 与 intersection_update(self, *args, **kwargs)

      求set1与set2的交集;intersection方法不修改set1,返回一个交集的字典副本;而intersection_update方法直接修改set1,等于交集

1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set2 = {'c++', 'go', 'c', 'php'}
3 >>> set1.intersection(set2)
4 {'c', 'c++'}
5 >>> set1
6 {'java', 'c', 'c++', 'python'}
1 #set1发生改变
2 >>> set1 = {'python', 'java', 'c', 'c++'}
3 >>> set2 = {'c++', 'go', 'c', 'php'}
4 >>> set1.intersection_update(set2)
5 >>> set1
6 {'c', 'c++'}

    7.isdisjoint(self, *args, **kwargs)

    判断两个集合的交集是不是空集,如果是空集返回True

1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set2 = {'c++', 'go', 'c', 'php'}
3 >>> set1.isdisjoint(set2)
4 False
5 >>> set2 = {'go', 'php'}
6 >>> set1.isdisjoint(set2)
7 True

    8.issubset(self, *args, **kwargs) 与 issuperset(self, *args, **kwargs)

    set1.issubset(set2),判断set1是不是set2 的子集,如果是子集,则返回True

    set1.issuperset(set2),判断set1是不是set2的父集(即set2是不是set1的子集),如果是父集,则返回True

1 >>> set2 = {'python', 'java', 'c', 'c++'}
2 >>> set1 = {'c++', 'c'}
3 >>> set1.issubset(set2)
4 True
5 >>> set1 = {'c++', 'c', 'go'}
6 >>> set1.issubset(set2)
7 False
1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set2 = {'c++', 'c'}
3 >>> set1.issuperset(set2)
4 True
5 >>> set2 = {'c++', 'c', 'go'}
6 >>> set1.issuperset(set2)
7 False

    9.symmetric_difference(self, *args, **kwargs) 与 symmetric_difference_update(self, *args, **kwargs)

    求两个集合交叉补集,symmetric_difference方法不修改set1,返回一个交叉补集的字典副本;而symmetric_difference_update方法直接修改set1,等于交叉补集

        

1 >>> set1 = {'python', 'java', 'c', 'c++'}
2 >>> set2 = {'php', 'go', 'c', 'c++'}
3 >>> set1.symmetric_difference(set2)
4 {'php', 'python', 'java', 'go'}
5 >>> set1
6 {'java', 'c', 'c++', 'python'}
7 >>> set1.symmetric_difference_update(set2)
8 >>> set1
9 {'python', 'php', 'java', 'go'}

python-集合类型的更多相关文章

  1. Python集合类型的操作与应用

    Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...

  2. 代码与图详解性能之Python集合类型(list tuple dict set generator)

    Python内嵌的集合类型有list.tuple.set.dict. 列表list:看似数组,但比数组强大,支持索引.切片.查找.增加等功能. 元组tuple:功能跟list差不多,但一旦生成,长度及 ...

  3. python集合类型

    集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...

  4. 遇见Python集合类型

    Python目前有两种内置集合类型,set和frozenset. Ⅰ.两者区别 set是可变的,没有哈希值,其内容可以使用add()和remove()这样的方法来改变,所以不能被用作字典的键或其他集合 ...

  5. python集合类型set

    set 类型的简单粗暴取出并集合交集  |   & li=[11,22,33] n_li=[44,55] b= (list(set(li)&set(n_li))) b2=set(li) ...

  6. 《Python核心编程》 第七章 映射和集合类型 - 习题

    课后习题 7–1. 字典方法.哪个字典方法可以用来把两个字典合并到一起? 答: dict1 = {' :' python' } dict2 = {' :"hello" } dict ...

  7. python set type 集合类型的数据介绍 (set frozenset)

      python支持数学中的集合概念,如:通过in,not in 可以检查某元素是否在,不在集合中. python有两种集合类型,set(可以变的,不能哈希,不能用作字典的key),frozenset ...

  8. Python核心编程(第七章)--映像和集合类型

    字典:它是一个容器类型,能存储任意个数的Python对象,也包括其他容器类型,Python的字典是作为可变的哈希表实现的 映像类型中的数据是无序排列的   可以用工厂方法dict()来创建字典,也可以 ...

  9. Python基础-字符串、集合类型、判断、深拷贝与浅拷贝、文件读写

    字符串 1.定义三个变量: 2.交换两个变量值 1)引入第三个变量: 2)Python引入第三方变量: 3)不引入第三方变量: 3. isalpha 是否是汉字或字母 4.Isalnum  是否是汉字 ...

  10. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

随机推荐

  1. 我的SublimeText配置

    我的SublimeText改键 [ /** * 我的改键 */ // f1控制中心:f2快速查找:f3查找下一个: { "keys": ["f1"], &quo ...

  2. matlab中fprintf函数的具体使用方法

    matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...

  3. ubuntu下go开发环境

    https://qiita.com/necomeshi/items/676ccb669d6e6102117b 安装 https://golang.org/dl/ # 下载&解压 axel -n ...

  4. monkeyrunner多点触摸

    思路是:在屏幕上某个位置按着不放:device.touch(x,y,md.DOWN) 然后再做一个滑动的操作:device.drap((x1,y1),(x2,y2),0.2,10) 然后再松开按键:d ...

  5. JavaScript专题

    1. 在ajax的任何回调方法中,比如success回调,使用return,将会无效 2. //todo

  6. May 11th 2017 Week 19th Thursday

    If you fell down yesterday, stand up today. 昨天跌倒了,今天仍然要站起来. From Herbert George Wells. If you fell d ...

  7. 一点一点学写Makefile(6)-遍历当前目录源文件及其子目录下源文件

    时候,我们在开发的时候需要将本次工程的代码分成多个子目录来编写,但是在Makefile的编写上却是个问题,下面我就教大家怎么构建带有子文件夹的源代码目录的自动扫描编译 下面这张图是我的文件树 这里面s ...

  8. 【luogu P1402 酒店之王】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1402 菜 #include <queue> #include <cstdio> #i ...

  9. 【luogu P3371 单源最短路径】 模板 dij + heap

    题目链接:https://www.luogu.org/problemnew/show/P3371#sub 堆优化迪杰斯特拉,留着以后复习用 #include <iostream> #inc ...

  10. C#多线程最简单Demo

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...