python集合

集合set

    • set_python
      • 1.集合的创建
      • 2.集合的相关操作
      • 3.集合间的关系
      • 4.集合的数学操作
      • 5.集合生成式

set_python

  • 集合(set)是一个可变的数据类型,它用于存储一组唯一的元素。集合中的元素是无序的,并且不能重复。可以使用大括号{}或者set()函数来创建一个集合。

  • 集合有很多常用的方法,例如add()用于添加元素,remove()用于删除元素,pop()用于随机删除一个元素等等。此外,还有一些常用的运算符和方法,比如并集、交集、差集、对称差集等。

1.集合的创建

s = {2, 3, 4, 5, 6, 6, 7, 7}
print(s)  # {2, 3, 4, 5, 6, 7}s1 = set(range(6))
print(s)  # {0, 1, 2, 3, 4, 5}s2 = set([2, 3, 4, 5, 6, 6, 7, 7])
print(s2)  # {2, 3, 4, 5, 6, 7}s3 = set((1, 2, 4, 5, 65))
print(s3)  # {65, 1, 2, 4, 5} 无序s4 = set('python')
print(s4)  # {'h', 'n', 'o', 't', 'y', 'p'}s5 = set({12, 4, 34, 55, 66, 4, 66})
print(s5)  # {34, 66, 4, 55, 12}# 定义一个空集合
s6 = {}
print(type(s6))  # <class 'dict'> 错误方法
s7 = set()
print(type(s7))  # <class 'set'>

2.集合的相关操作

  • 判断操作(in / not in)
s = {10, 20, 30, 40, 60, 20}
print(10 in s)  # True
print(10 not in s)  # False
print(100 in s)  # False
  • 新增操作
方法含义
add()一次至少添加一个元素
update()至少添加一个元素
s = {10, 20, 20}s.add(80)
print(s)  # {80, 10, 20}s.update({100, 110})
print(s)  # {80, 20, 100, 10, 110}s.update([200, 210])
print(s)  # {80, 210, 20, 100, 200, 10, 110}s.update((300, 310))
print(s)  # {200, 10, 80, 210, 20, 100, 300, 110, 310}
  • 删除操作
方法含义
remove()一次删除一个指定的元素。若指定元素不存在抛出KeyError
discard()一次删除一个指定元素,若指定元素不存在不抛出异常
pop()一次只删除一个任意元素
clear()清空集合
s = {200, 10, 80, 210, 20, 100, 300, 110, 310}s.remove(100)
print(s)  # {200, 10, 300, 110, 80, 210, 20, 310}'''
s.remove(500)
print(s)  # 报错 
'''s.discard(200)
print(s)  # {10, 300, 110, 80, 210, 20, 310}s.discard(500)
print(s)  # 不报错:{10, 300, 110, 80, 210, 20, 310}s.pop()
# s.pop(300)  # pop() takes no arguments (1 given)
print(s) # {300, 110, 80, 210, 20, 310}s.clear()
print(s)  # set()

3.集合间的关系

集合关系使用函数
A与B是否相等A == B
A是否是B的子集A.issubset(B)
A是否是B的超集A.issuperset(B)
A与B是否不存在交集A.isdisjoint(B)
# 两个集合是否相等(元素同,就相等)
s = {10, 20, 30, 40}
s2 = {30, 40, 20, 10}
print(s == s2)  # True
print(s != s2)  # False# 一个集合是否是另一个集合的子集
s1 = {10, 20, 30, 40, 50, 60}
s2 = {10, 20, 30, 40}
s3 = {10, 20, 90}
print(s2.issubset(s1))  # True
print(s3.issubset(s1))  # False# 一个集合是否是另一个集合的超集
print(s1.issuperset(s2))  # True
print(s1.issuperset(s3))  # False#两个集合是否有交集
print(s2.isdisjoint(s3))  # False
s4 = {100, 200, 300}
print(s2.isdisjoint(s4))  # True

4.集合的数学操作

方法含义
A.intersection(A) 或者 A & BA与B的交集
A.union(B) 或者 A | BA与B的并集
A.difference(B) 或者 A - BA与B的差集
A.symmetric_difference(B) 或者 A ^ BA与B的对称差集
在这里插入图片描述
# 两个集合是否相等(元素同,就相等)
s1 = {10, 20, 30, 40}
s2 = {20, 30, 40, 50, 60}#(1)交集操作
print(s1.intersection(s2))  # {40, 20, 30}
print(s1 & s2)  # {40, 20, 30}#(2)并集操作
print(s1.union(s2))  # {40, 10, 50, 20, 60, 30}
print(s1 | s2)  # {40, 10, 50, 20, 60, 30}#(3)差集操作
print(s1.difference(s2))  # {10}
print(s2 - s1)  # {50, 60}#(4)对称差集
print(s1.symmetric_difference(s2))  # {50, 10, 60}
print(s1 ^ s2)  # {50, 10, 60}#经过交集,并集,差集操作之后
print(s1)  # {40, 10, 20, 30}
print(s2)  # {40, 50, 20, 60, 30}

5.集合生成式

s = { i * i for i in range(10)}
print(s)  # {0, 1, 64, 4, 36, 9, 16, 49, 81, 25}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/132768.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# OpenVino Yolov8 Pose 姿态识别

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…

API原理概念篇(六)玩转正则表达式等常用API

一 玩转正则表达式等常用API ① 正则 1、openresty存在两套正则表达式规范1) lua自身独有的正则规范 备注&#xff1a;大约有5%&#xff5e;15%性能损耗损耗原因&#xff1a;表达式compile成pattern,并不会被缓存,每次都会被重新compile编译2) nginx的符合POSIX规范的PCR…

IJK源码分析-android篇

整个IJK播放器框架相较于原始ffplay.c播放器,在三处进行了抽象,分别是: (1)解码器配置初始化操作,对应的数据结构是: struct IJKFF_Pipeline {SDL_Class *opaque_class;IJKFF_Pipeline_Opaque *opaque;void (*func_destroy) (IJKFF_Pipe…

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox)

微调框 (Spinbox) 微调框用于数值调整&#xff0c;有时候我们希望获取一个用户输入的数值&#xff0c;但是又不希望弹出键盘&#xff0c;可以使用微调框。 示例代码 -- 回调函数 function spinbox_increment_event_cb(obj, event)if event lvgl.EVENT_SHORT_CLICKED thenlvg…

openssl websockets

1. HTTPS通信的C实现 - 知乎

fluent python part3 一等函数

第 5 章 一等函数 5.1 把函数视作对象 >>> def factorial(n): ... """return n!""" ... return 1 if n < 2 else n * factorial(n - 1) ... >>> factorial(42) 140500611775287989854314260624451156993638400000…

【物联网】简要介绍最小二乘法—C语言实现

最小二乘法是一种常用的数学方法&#xff0c;用于拟合数据和寻找最佳拟合曲线。它的目标是找到一个函数&#xff0c;使其在数据点上的误差平方和最小化。 文章目录 基本原理最小二乘法的求解应用举例使用C语言实现最小二乘法总结 基本原理 假设我们有一组数据点 ( x 1 , y 1 …

pandas读取一个 文件夹下所有excel文件

我这边有个需求&#xff0c;是要求汇总一个文件夹所有的excel文件&#xff0c; 其中有.xls和 .xlsx文件&#xff0c;同时还excel文件中的数据可能还不一致&#xff0c;会有表头数据不一样需要一起汇总。 首先先遍历子文件夹并读取Excel文件&#xff1a; 使用os库来遍历包含子文…

LeetCode 面试题 04.09. 二叉搜索树序列

文章目录 一、题目二、C# 题解 一、题目 从左向右遍历一个数组&#xff0c;通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。 给定一个由不同节点组成的二叉搜索树 root&#xff0c;输出所有可能生成此树的数组。 点击此处跳转题目。 示例 1: 输入: root [2,1,3]…

记录:移动设备软件开发(activity组件)

目录 前言Android简介和发展Android应用的基本组件介绍Activity组件Activity简介Activity的状态和生命周期 小结 前言 移动设备软件开发是指为智能手机、平板电脑等移动设备设计和开发应用程序的过程。移动设备软件开发涉及多种技术、平台和工具&#xff0c;例如Android、iOS、…

9.14号作业

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 有些功能&#xff0c;不会 #include <iostream>using namespace std; //创建vector类 class Vector { private:int *data;int size;int capacity; public://无参构造Vector(){}//拷贝构造Vector(c…

一个方法用js生成随机双色球、大乐透

代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

002 Linux 权限

前言 本文将会向您介绍关于linux权限方面的内容&#xff0c;包括文件类型&#xff0c;如何切换用户、基本权限、粘滞位等等 Linux具体的用户 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受限制 普通用户&#xff1a;在linux下做有限的事情。 超级用户的…

NDK (ndk)报错 Unity requires NDK r19 (64-bit)(19.0.05232133)

一、介绍 在 Android 添加 NDK ndk 的时候&#xff0c;出现 Unity requires NDK r19 (64-bit)(19.0.05232133)。 二、环境 1、Unity 2020.3.48f1c1 2、Android NDK 配置 三、报错信息 NDK (ndk)报错 Unity requires NDK r19 (64-bit)(19.0.05232133) 四、解决方法 1、下…

【力扣每日一题】2023.9.13 检查骑士巡视方案

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个n*n大小的矩阵&#xff0c;矩阵的元素表示骑士已经行动的次数&#xff0c;问我们骑士能不能按照矩阵里元素顺序来巡视整个…

vue前后端分离单点登录,结合长token和短token进行登录

单点登录背景 在公司发展初期&#xff0c;公司拥有的系统不多&#xff0c;通常一个两个&#xff0c;每个系统都有自己的登录模块&#xff0c;运营人员每天用自己的账号登陆&#xff0c;很方便&#xff0c;但是&#xff0c;随着企业的发展&#xff0c;用到的系统随之增加&#x…

06-Redis缓存高可用集群

上一篇&#xff1a;05-Redis高可用集群之水平扩展 1.集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c…

指引型树型组件的封装

最近&#xff0c;由于业务的需要&#xff0c;需要做一个指向形树型组件。在寻找各种文章后&#xff0c;终于有了思路。&#x1f912;&#x1f912;&#x1f912; 树型组件的思路主要是递归。谈到递归&#xff0c;我们首先要有递归的出口。递归的出口就是没有孩子节点了。这个时…

ESP32主板-MoonESP32

产品简介 Moon-ESP32主板&#xff0c;一款以双核芯片ESP32-E为主芯片的主控板&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;低功耗&#xff0c;板载LED指示灯&#xff0c;引出所有IO端口&#xff0c;并提供多个I2C端口、SPI端口、串行端口&#xff0c;方便连接&#xff0c;…

性能监控-grafana+prometheus+node_exporter

Prometheus是一个开源的系统监控和报警工具。它由SoundCloud开发并于2012年发布&#xff0c;后来成为了一个独立的开源项目&#xff0c;并得到了广泛的应用和支持。 Prometheus的主要功能包括采集和存储各种系统和应用程序的监控数据&#xff0c;并提供强大的查询语言PromQL来…