# 集合(set)

## 4.6 集合(set)

[En]

A collection is an unordered container made up of non-repeating elements. The elements in the collection cannot be repeated, and even if the same element is added to the collection, only one will be retained. Because of this nature of the collection, it is generally possible to use the collection to remove duplicates.

st = {1} # 仅一个元素的集合
st2 = {‘a’, ‘b’, ‘c’} # 集合中存放的全是字符
st3 = {1, ‘a’, ‘中’} # 集合中存放混合数据
st4 = {‘red’, ‘green’, ‘blue’} # 集合中存放的全是字符串

{x for x in range(5)}

{x * x for x in range(10)}

{x*x for x in range(10) if x % 3 == 0}

set函数可以将一个 &#x53EF;&#x8FED;&#x4EE3;&#x5BF9;&#x8C61;转换成集合。如果可迭代对象中有重复的元素则会自动去除保留一个。

print(set(‘Pythonn’)) # 只会保留一个n

{‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’}

set() # 创建空的集合
{}

set函数可以创建一个普通的集合(可以修改)，但是通过frozenset函数创建的集合是一个不可修改的集合，创建后就不能再修改里面的元素，包括增加、删除、清空等。

st = frozenset(‘python’)
st

frozenset({‘o’, ‘t’, ‘p’, ‘h’, ‘y’, ‘n’})

st.add(‘l’)

Traceback (most recent call last):
File “C:\Program Files\Python3102\lib\code.py”, line 90, in runcode
exec(code, self.locals)
File “”, line 1, in
AttributeError: ‘frozenset’ object has no attribute ‘add’

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1 | st2

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1 & st2

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1 – st2

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1 – st2

A < B # 返回A是否是B的子集(同：A.issubset(B))
A > B # 返回A是否是B的超集(同：A.issuperset(B))

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st = {1, 2}
st.add(3)
st

&#x63CF;&#x8FF0;

[En]

Add a new element or collection to the current collection.

&#x793A;&#x4F8B;

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1.update(st2)
st1

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2, 3}
st1.remove(2)
st1

&#x63CF;&#x8FF0;

[En]

Deletes the specified element in the collection. It has no effect if the element you want to delete is not in the target collection.

&#x793A;&#x4F8B;

st1 = {1, 2, 3, 4, 5}
st1.discard(2)
st1

&#x63CF;&#x8FF0;

[En]

Randomly delete an element in the collection

&#x793A;&#x4F8B;

st1 = {1, 2, 3}
st1.pop()

st1

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st = {1, 2}
st.clear()
st

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1.union(st2)

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1.intersection(st2)

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2, 3}
st2 = {2, 4, 6}
st1.difference(st2)

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2, 3, 4, 5}
st2 = {2, 4, 6, 8, 10}
st1.symmetric_difference(st2)

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2}
st2 = {1, 2, 4}
st1.issubset(st2)

True

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st1 = {1, 2}
st2 = {2, 4}
st3 = {3, 6}
st1.isdisjoint(st2)
st1.isdisjoint(st3)

False
True

&#x63CF;&#x8FF0;

&#x793A;&#x4F8B;

st = {1, 2, 3}
st2 = st.copy()
st2

Original: https://www.cnblogs.com/sibide/p/16390611.html
Author: crleep
Title: 集合(set)

(0)

### 大家都在看

• #### pyshark报错： lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding !

pyshark版本太低，修改内容如下图所示。 或者升级pyshark版本到0.4.5，已经做了处理，修改的内容是： xml_pkt = xml_pkt.decode(errors=…

Python 2023年6月3日
0104
• #### Springboot 一行代码实现文件上传 20个平台！少写代码到极致

大家好，我是小富~ 又是做好人好事的一天，有个小可爱私下问我有没有好用的 springboot文件上传工具，这不巧了嘛，正好我私藏了一个好东西，顺便给小伙伴们也分享一下， demo…

Python 2023年10月17日
089
• #### python教你用骰子拼图

一、前言 最近看到抖音上有人用骰子拼照片。仔细一想，这人肯定是借助了什么工具，把预览图生成好之后再拼的。我灵光一闪，赶紧用python写一个骰子拼图仿真程序，并且自己也买了3500…

Python 2023年9月20日
090
• #### 【Python实战】再分享一款商品秒杀小工具，我已经把压箱底的宝贝拿出来啦~

导语 兄弟们好，我是栗子。 七夕就快到了，就剩下10来天时间，给女朋友抢抢抢买买买什么都想好了嘛？各位小姐姐要抢 点付尾款的单子都列好了吗？要秒杀心仪宝贝的闹铃都调好了吗？ ​ 有…

Python 2023年9月25日
085
• #### Django 图片验证码的使用

通过pycharm和pip安装都可以 2.注册app 在项目的配置文件setting.py中的app中注册 INSTALLED_APPS = [ ‘django.contrib.a…

Python 2023年6月12日
0156
• #### 爬虫-Scrapy (十一) 分布式爬虫 scrapy 转 scrapy-redis 详解

1.概述 写个基于scrapy的爬虫，爬取下自己的博文，然后改造成基于scrapy-redis，实现分布式爬虫 1.scrapy 爬虫 目录结构 SanjidaoSpider.py…

Python 2023年10月6日
0107
• #### Python – matplotlib – 决策曲线分析（Decision Curve Analysis）

文章目录 一、决策曲线分析概念 * 1. 阈值概率 2. 净获益 二、matplotlib实现 * 1. 计算模型带来的净获益 2. 计算treat all策略带来的净获益 3. …

Python 2023年8月30日
0126
• #### 在windows平台上部署python web工程(flask)

背景介绍：本人几年前曾在公有云服务器上部署过python web工程，只记得当时只开了cmd就可以啊。再就是填了个ip换域名。云服务器是租的，域名买了一年。 现有需求：在内网电脑上…

Python 2023年8月13日
0102
• #### python 爬取种子_Python爬虫框架Scrapy 学习笔记 2 —– 爬取Mininova网站种子文件信息…

任务描述 目标网站截图： Original: https://blog.csdn.net/weixin_34420941/article/details/114919332Auth…

Python 2023年10月3日
089
• #### Scrapy学习

参考https://segmentfault.com/a/1190000013178839 流程： Scrapy框架官方网址：https://doc.scrapy.org/en/l…

Python 2023年10月6日
071
• #### 讲课笔记02 Django项目的调试

一、打开创建的MyDjango项目 二、配置Django server 1.单击 Edit Configurations… ，打开 运行/调试配置 对话框 2.在调试配置对话框…

Python 2023年8月4日
0124
• #### Docker:基于Docker对中间件进行配置、安装和使用操作合集

提示：文章写完后，目录可以自动生成，如何生成可参考右边的帮助文档 文章目录 前言 一、rabbitmq * 启动rabbitmq 设置rabbitmq用户 – + 进入…

Python 2023年9月15日
0104
• #### 屡获殊荣 华云安喜获“攻击面管理”双奖肯定

啊哦~你想找的内容离你而去了哦 内容不存在，可能为如下原因导致： ① 内容还在审核中 ② 内容以前存在，但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

Python 2023年9月17日
066
• #### python绘图颜色深浅代表数值_Python数据可视化绘图工具matplotlib浅试

数据可视化 matplotlib模块的使用 1、柱形图 1、应用场景： 定性数据的分布展示 说明： 柱状图主要是应用在可视化数据的应用场景中 例如：一个班级中学生的籍贯分布，下载一…

Python 2023年9月4日
092
• #### 深度学习–波士顿买房（三种方法模拟）

import randomimport numpy as npfrom sklearn.datasets import load_bostondataset = load_bost…

Python 2023年8月20日
092
• #### Pandas数据分析30——时间序列分析案例

参考书目：《深入浅出Pandas：利用Python进行数据处理与分析》 同样在我们熟悉了pandas的各种基础用法后，进行一些案例分析。本次分析的案例是一些时间序列数据的，要观察变…

Python 2023年8月24日
0102