集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),

但是集合本身是不可哈希的(所以集合做不了字典的键)的。

以下是集合最重要的两点:

(1)去重,把一个列表变成集合,就自动去重了。

(2)关系测试,测试两组数据之间的交集,差集,并集等关系。

1. 集合的创建

```Python
set1 = set({1, 2, "barry"})
set2 = {1, 2, "barry"}
print(set1, set2)
```
执行结果为:
```Python
{'barry', 1, 2} {'barry', 1, 2}
```

2. 集合的增

2.1 add()

```Python
set1 = {"a", "b", "c"}
set1.add("d")
print(set1)
```
执行结果为:
```Python
{'b', 'a', 'd', 'c'}
```

2.1 update()

update():迭代着增加
```Python
set1 = {"a", "b", "c"}
set1.update("A")
print(set1)
set1.update("B")
print(set1)
set1.update([1, 2, 3])
print(set1)
```
执行结果为:
```Python
{'c', 'b', 'A', 'a'}
{'A', 'a', 'B', 'c', 'b'}
{1, 2, 3, 'A', 'a', 'B', 'c', 'b'}
```

3. 集合的删

```Python
set1 = {"a", "b", "c", "d", "e"}
set1.remove("a") #删除一个元素
print(set1)

set1.pop() #随机删除一个元素

print(set1)

set1.clear() #清空集合

print(set1)

del set1 #删除集合

print(set1)


<h2>4. 集合的其他操作</h2>
<h3>4.1 交集(& 或者 intersection)</h3>
```Python
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2) #{4, 5}
print(set1.intersection(set2)) #{4, 5}

4.2 并集(| 或者 union)

```Python
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 | set2) #{1, 2, 3, 4, 5, 6, 7, 8}
print(set2.union(set1)) #{1, 2, 3, 4, 5, 6, 7, 8}
```

4.3 差集(- 或者 differene)

```Python
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 - set2) #{1, 2, 3}
print(set1.difference(set2)) #{1, 2, 3}
```

4.4 反交集(^ 或者 symmetric_difference)

```Python
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 ^ set2) #{1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2)) #{1, 2, 3, 6, 7, 8}
```

4.5 子集与超集

```Python
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5, 6}

print(set1 < set2) #True

print(set1.issubset(set2)) #True

这两个相同,都是说明set1是set2子集

print(set2 > set1) #True

print(set2.issuperset(set1))#True

这两个相同,都是说明set2是set1超集

<h2>5. frozenset不可变集合,让集合变成不可变类型</h2>
```Python
s = frozenset("barry")
print(s, type(s))

执行结果为:

frozenset({'b', 'a', 'r', 'y'}) <class 'frozenset'>

Python基础之集合set的更多相关文章

  1. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  2. Python基础(三)——集合、有序 无序列表、函数、文件操作

    1.Set集合 class set(object): """ set() -> new empty set object set(iterable) -> n ...

  3. python 基础 set 集合类型补充

    为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...

  4. python基础08_set集合

    关于前几次课的回顾: #!/usr/bin/env python # coding:utf-8 ## 字符串 数字 列表 元组 字典 ## 可变:列表 字典 ## 不可变:字符串, 数字, 元组 na ...

  5. python基础七--集合

    12.221.昨日内容回顾 小数据池: int:-5--256 str:1.不能有特殊字符 2.*int不能超过20 编码:所能看到的最小构成单位叫字符 ascii : 8位 1字节 表示1个字符 u ...

  6. Python基础入门-集合

    今天给大家分享的是python中集合(set)的概念,集合这个词其实和高中学的数学集合的概念很相近,或者作为初学者你就可以把它理解为数学当中的集合.在python中集合(set)是由一个个键组成的,但 ...

  7. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  8. Python基础-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

  9. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  10. Python基础操作-集合

    在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...

随机推荐

  1. java项目上线的流程(将web项目部署到公网)

    本博文来源于网络,原文的地址在本篇博文最下方. 如何将java web项目上线/部署到公网 关于如何将Java Web上线,部署到公网,让全世界的人都可以访问的问题.小编将作出系列化,完整的流程介绍. ...

  2. k8s之调度器、预选策略及优选函数

    1.调度器(scheduler) 调度器的功能是调度Pod在哪个Node上运行,这些调度信息存储在master上的etcd里面,能够和etcd打交道的只有apiserver; kubelet运行在no ...

  3. 牛客 201 J Princess Principal (括号, 栈模拟)

    大意: 给定序列$a$, $a_i$为偶数代表第$\frac{a_i}{2}$种左括号, 否则为第$\frac{a_i-1}{2}$种右括号. 询问区间是否是合法括号序列. #include < ...

  4. django websocket 实现后台日志在web端展示(+前端vue设置)

    核心代码: @accept_websocket def get_log(req): if req.is_websocket(): print('收到websocket请求') with open(se ...

  5. MQTT协议探究(三)

    1 回顾与本次目标 1.1 回顾 主题通配符 主题语义和用法 WireShark进行抓包分析了报文 报文分析: SUBSCRIBE--订阅主题 SUBACK--订阅确认 UNNSUBSCRIBE--取 ...

  6. DIP常用资源整理

    Deep Learning(深度学习): ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习) ...

  7. Java日志规范(转载)

    Overview 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是 ...

  8. tomcat 部署 React 项目后,浏览器刷新报404问题

    问题:tomcat部署了react前端项目,可以正常访问,但是页面刷新就报404 一.问题截图 二.解决办法 在tomcat 配置文件web.xml中配置如下代码: web.xml 路径: apach ...

  9. @ComponentScan注解及其XML配置

    开发中会经常使用包扫描,只要标注了@Controller.@Service.@Repository,@Component 注解的类会自动加入到容器中,ComponentScan有注解和xml配置两种方 ...

  10. iView - DatePicker组件神坑,如何处理?

    最近使用iView - DatePicker组件时发现一些问题,明明设置是正常的日期时间格式,当需要使用这个时间的时候,页面却显示 Fri Jun 09 2017 12:00:10 GMT+0800 ...