Python中关于set的基本用法
作者:YKenan 发布时间:2021-09-23 12:45:39
标签:Python,set
1. set 的基本内容
1.基本特点
(1) 无序性
(2) 确定性
(3) 不重复性
2.set() 实质
内部进行 可迭代性的 for 循环
例子:
2. set 的基本方法
2.1 set 的普通基本方法
2.1.1 增
add(self, *args, **kwargs)
copy(self, *args, **kwargs)
# 1. 增
# Add an element to a set. This has no effect if the element is already present.
s = {1, 12, 32, "涟漪", "hello"}
s.add("good")
s.add(32)
print(s)
# Add an element to a set. This has no effect if the element is already present.
s = {1, 12, 32, "涟漪", "hello"}
c = s.copy()
print(c)
结果:
2.1.1 删
clear(self, *args, **kwargs)
pop(self, *args, **kwargs)
remove(self, *args, **kwargs)
discard(self, *args, **kwargs)
# 2. 删
# Remove all elements from this set.
s = {1, 12, 32, "涟漪", "hello"}
s.clear()
print(s)
# Remove and return an arbitrary set element. Raises KeyError if the set is empty.
s = {1, 12, 32, "涟漪", "hello"}
s.pop()
print(s)
# Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError.
s = {1, 12, 32, "涟漪", "hello"}
s.remove(1)
# s.remove("good")
print(s)
# Remove an element from a set if it is a member. If the element is not a member, do nothing.
s = {1, 12, 32, "涟漪", "hello"}
s.discard(1)
s.discard("good")
print(s)
结果:
pop() 是随机删除。
remove() 和 discard() 指定删除,但是指定不存在的元素时,remove() 会报错,而 discard() 不会报错
2.2 set 的逻辑基本方法
2.2.1 set 交集运算
# set 交集运算
x1 = ["a", "b", "c", "d", "e"]
x2 = ["c", "d", "e", "f", "g"]
x3 = []
for x in x1:
if x in x2:
x3.append(x)
print(x3)
s_x1 = set(x1)
s_x2 = set(x2)
inter = s_x1.intersection(s_x2)
print(inter)
# 交集符号运算
print(s_x1 & s_x2)
# update
s_x1.intersection_update(s_x2)
print(s_x1)
结果:
2.2.2 set 并集运算
# set 并集运算
x1 = ["a", "b", "c", "d", "e"]
x2 = ["c", "d", "e", "f", "g"]
s_x1 = set(x1)
s_x2 = set(x2)
uni = s_x1.union(s_x2)
print(uni)
# 并集符号运算
print(s_x1 | s_x2)
# update
s_x1.update(s_x2)
print(s_x1)
结果:
2.2.3 set 差集运算
# set 差集运算
x1 = ["a", "b", "c", "d", "e"]
x2 = ["c", "d", "e", "f", "g"]
s_x1 = set(x1)
s_x2 = set(x2)
dif_x1 = s_x1.difference(s_x2)
print(dif_x1)
dif_x2 = s_x2.difference(s_x1)
print(dif_x2)
# 差集符号运算
print(s_x1 - s_x2)
print(s_x2 - s_x1)
# update
s_x1.difference_update(s_x2)
print(s_x1)
s_x2.difference_update(s_x1)
print(s_x2)
结果:
2.2.4 set 对称差集运算
# set 对称差集运算满 * 换律:A△B = B△A
s_x1 = set(x1)
s_x2 = set(x2)
sym = s_x1.symmetric_difference(s_x2)
print(sym)
# 对称差集符号运算
print(s_x1 ^ s_x2)
print(s_x1 - s_x2 | s_x2 - s_x1)
print((s_x1 | s_x2) - (s_x2 & s_x1))
# update
s_x1.symmetric_difference_update(s_x2)
print(s_x1)
结果:
2.2.5 set 逻辑判断运算
# 判断
# Return True if two sets have a null intersection.
x1 = {"a", "b", "c"}
x2 = {"e", "f", "g"}
inter = x1.isdisjoint(x2)
print(inter)
# Report whether another set contains this set.
x1 = {"a", "b", "c"}
x2 = {"a", "b", "c", "e", "f", "g"}
inter = x1.issubset(x2)
print(inter)
# Report whether this set contains another set.
x1 = {"a", "b", "c", "e", "f", "g"}
x2 = {"a", "b", "c"}
inter = x1.issuperset(x2)
print(inter)
结果:
来源:https://blog.csdn.net/YKenan/article/details/88357847


猜你喜欢
- CocosCreator版本:2.4.2jszip的实际项目应用游戏中有大量配置的情况下,文件会变得非常大,所以有些游戏会采用zip包压缩解
- 前言本笔记通过记录 数据包 在网络中的生命履历来引出一些网络基础知识,如:MAC、ARP、IP、子网掩码、网关、集线器、交换机、路由器这些概
- 一、变量相关1.变量声明C# : int a;Go : var a int; 需要在前面加一个var关键字,后面定义类型可以使用 var(
- 我们知道同步执行和异步执行的区别,为了更好的提高用户的体验,我们都会采用异步方式去处理一些问题,毕竟单线程的同步可能回造成卡死等现象,很不友
- 本文实例讲述了Python使用logging模块实现打印log到指定文件的方法。分享给大家供大家参考,具体如下:可能我们经常会使用print
- 人脸磨皮是最基础的人脸美颜效果。主要分为祛斑,祛痘,淡化黑眼圈等步骤。通过前面的学习相信大家一眼都看得出来我们需要干什么才能识别人脸磨皮效果
- 1. 首先安装node,推荐偶数版本;好了之后检查一下: node -v;出现版本好即为安装成功;win10家庭版本的msi版本的时候出现无
- 0 引言年中购物618大狂欢开始了,各大电商又开始了大力度的折扣促销,我们的小胖又给大家谋了一波福利,淘宝APP直接搜索:小胖发福利,每天领
- 这里分享一些轨迹聚类的基本方法,涉及轨迹距离的定义、kmeans聚类应用。需要使用的python库如下import pandas as pd
- 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道
- 在部署程序时遇到的一个问题,MySQL定义举例如下:CREATE TABLE `example` ( `id` INTEGER
- SQL Server 获取数据的总记录数,有两种方式:1.先分页获取数据,然后再查询一遍数据库获取到总数量2.使用count(1) over
- 装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于 AOP (面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,
- 前天在生产环境中遇到一个问题:使用 GROUP_CONCAT 函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是n
- 这篇文章主要介绍了python 矢量数据转栅格数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- Python自带的pdb库,发现用pdb来调试程序还是很方便的,当然了,什么远程调试,多线程之类,pdb是搞不定的。用pdb调试有多种方式可
- ScrapyScrapy是纯python实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。Scrapy使用了Twisted异步网络
- 一、很多读者Python安装完成之后,想要下载相关的包,例如:numpy、pandas等Python中这些基础的包,但是,发现pip根本用不
- 1、在MySQL中要修改全局(global)变量,有两种方法:方法一,修改my.ini配置文件,如果要设置全局变量最简单的方式是在my.in
- 一、前言写这篇文章的灵感来源于我玩游戏的时候(为了避免过不了审就不说是啥游戏了),看见一个大佬在游戏里面建造了“还原方阵