【Python基础】集合

文章目录

    • @[toc]
      • 什么是集合
      • 集合的特点
        • 元素不重复性
          • 示例
        • 无序性
          • 示例
      • 集合操作
        • 增加元素
          • add()方法
        • 删除元素
          • clear()方法
          • pop()方法
          • remove()方法
        • 交集
          • intersection()方法
          • &符号
          • isdisjoint()方法
        • 并集
          • union()方法
          • |符号
        • 差集
          • difference()方法
          • -符号
        • 对称差集
          • symmetric_difference()方法
        • 子集
          • issubset()方法
          • issuperset()方法

因上努力

个人主页:丷从心.

系列专栏:Python基础

学习指南:Python学习指南

果上随缘


什么是集合

  • 如下定义的变量last_names存储的是集合
last_names = {'赵', '钱', '孙', '李', '周', '吴'}print(last_names)
{'李', '钱', '赵', '孙', '周', '吴'}
  • 通过type()函数可以查看变量last_names的数据类型
last_names = {'赵', '钱', '孙', '李', '周', '吴'}print(type(last_names))
<class 'set'>

集合的特点

元素不重复性
  • 集合中的元素不重复
示例
number_set = {1, 1, 2, 2, 3, 3}print(number_set)
{1, 2, 3}
  • 可以看到,集合会自动将重复的元素进行去重
无序性
  • 集合中的元素是无序的
示例
last_names = {'赵', '钱', '孙', '李', '周', '吴'}print(last_names)
{'钱', '周', '孙', '李', '赵', '吴'}
  • 可以看到,在定义集合时元素按照百家姓的顺序,在打印时元素是无序的
  • 由于集合具有无序性,集合没有索引和切片的概念,在遍历时只能使用for循环进行遍历

集合操作

增加元素
add()方法
set_object.add(element)
  • add()方法用于向集合中加入元素,如果集合中已经存在该元素的值,集合会自动进行去重
number_set = {1, 2, 3}number_set.add(4)
print(number_set)number_set.add(1)
print(number_set)
{1, 2, 3, 4}
{1, 2, 3, 4}
删除元素
clear()方法
set_object.clear()
  • clear()方法用于删除集合中的所有元素
number_set = {1, 2, 3}number_set.clear()print(number_set)
set()
pop()方法
set_object.pop()
  • pop()方法用于随机删除集合中的一个元素,返回值为被删除的元素
number_set = {1, 2, 3}popped_element = number_set.pop()print(popped_element)
print(number_set)
1
{2, 3}
remove()方法
set_object.remove(element)
  • remove()方法用于删除集合指定元素值的元素
number_set = {1, 2, 3}number_set.remove(1)print(number_set)
{2, 3}
交集
intersection()方法
set_object.intersection(set_obj)
  • intersection()方法用于返回两个集合的交集
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}intersection_set = number_set_1.intersection(number_set_2)print(intersection_set)
{2, 3}
&符号
  • 交集也可以通过&符号实现
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}intersection_set = number_set_1 & number_set_2print(intersection_set)
{2, 3}
isdisjoint()方法
set_object.isdisjoint(set_obj)
  • isdisjoint()方法用于判断两个集合是否不相交,是则返回True,否则返回False
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}print(number_set_1.isdisjoint(number_set_2))number_set_1 = {1, 2, 3}
number_set_2 = {4, 5, 6}print(number_set_1.isdisjoint(number_set_2))
False
True
并集
union()方法
set_object.union(set_obj)
  • union()方法用于返回两个集合的并集
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}union_set = number_set_1.union(number_set_2)print(union_set)
{1, 2, 3, 4}
|符号
  • 并集也可通过|符号实现
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}union_set = number_set_1 | number_set_2print(union_set)
{1, 2, 3, 4}
差集
difference()方法
set_object.difference(set_obj)
  • difference()方法用于返回两个集合的差集
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}difference_set = number_set_1.difference(number_set_2)print(difference_set)
{1}
-符号
  • 差集也可通过-符号实现
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}difference_set = number_set_1 - number_set_2print(difference_set)
{1}
对称差集
symmetric_difference()方法
set_object.symmetric_difference(set_obj)
  • symmetric_difference()方法用于返回两个集合的对称差集
number_set_1 = {1, 2, 3}
number_set_2 = {2, 3, 4}symmetric_difference_set = number_set_1.symmetric_difference(number_set_2)print(symmetric_difference_set)
{1, 4}
子集
issubset()方法
set_object.issubset(set_obj)
  • issubset()方法用于判断当前集合是否是参数集合的子集,是则返回True,否则返回False
number_set_1 = {1, 2}
number_set_2 = {1, 2, 3}print(number_set_1.issubset(number_set_2))
True
issuperset()方法
set_object.issuperset(set_obj)
  • issuperset()方法用于判断参数集合是否是当前集合的子集,是则返回True,否则返回False
number_set_1 = {1, 2, 3}
number_set_2 = {1, 2}print(number_set_1.issuperset(number_set_2))
True

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

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

相关文章

配置交换机端口安全

1、实验目的 通过本实验可以掌握&#xff1a; 交换机管理地址配置及接口配置。查看交换机的MAC地址表。配置静态端口安全、动态端口安全和粘滞端口安全的方法。 2、实验拓扑 配置交换机端口安全的实验拓扑如图所示。 配置交换机端口安全的实验拓扑 3、实验步骤 &#xff…

ZStack Cloud 5.0.0正式发布——Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强四大亮点简析

近日&#xff0c;ZStack Cloud 5.0.0正式发布&#xff0c;推出了包含Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强在内的一系列重要功能。云主机管理、物理机运维、密评合规、灾备服务等诸多使用场景和功能模块均有更新&#xff0c;为您带来更完善的平台服务、更…

设计模式——2_8 策略(Strategy)

文章目录 定义图纸一个例子&#xff1a;如何切换坦克的攻击方式GameElement&#xff08;游戏元素&#xff09;TankFactory&#xff08;坦克工厂&#xff09;Tank&#xff08;坦克&#xff09; 医疗车和飞行车策略模式Behavior(行为)TankTankFactory 碎碎念策略和状态为什么我们…

MySQL高级(索引语法、创建索引、查看索引、删除索引)

创建索引 create [unique | fulltext] index index_name on table_name (index_col_name,...); 查看索引 show index from table_name; 删除索引 drop index index_name on table_name; 案例演示&#xff1a; 先来创建一张表 tb_user&#xff0c;并且查询测试数据。 cre…

男女恋爱话术聊天对话回复矩阵版h5微信抖音QQ快手小程序app开发

男女恋爱话术聊天对话回复矩阵版h5微信抖音QQ快手小程序app开发 支持SAAS、支持独立加密、支持独立开源、价格不同。 买就送28W话术数据库 聊天神器 支持16种Al语气、男女版切换、矩阵运营、送后端转化渠道 支持微信公众号微信小程序抖音快手小程序可打包APP 这是一款什么软…

java开发的4套智慧系统源码 智慧校园系统源码 智慧工地系统源码 智慧城管系统源码

4套java智慧系统源码 智慧校园系统源码 智慧工地系统源码 智慧城管系统源码 3D 智能导诊系统源码 Java智慧校园系统源码 智慧学校源码 微信小程序电子班牌 智慧校园系统简介&#xff1a; 智慧校园的建设逐渐被师生、家长认可接受&#xff0c;智慧校园通过对在校师生、教务等…

MySQL学习笔记(数据类型, DDL, DML, DQL, DCL)

Learning note 1、前言2、数据类型2.1、数值类型2.2、字符串类型2.3、日期类型 3、DDL总览数据库/表切换数据库查看表内容创建数据库/表删除数据库/表添加字段删除字段表的重命名修改字段名&#xff08;以及对应的数据类型&#xff09; 4、DML往字段里写入具体内容修改字段内容…

MySQL学习笔记2——基础操作

基础操作 一、增删改查1、添加数据2、删除数据3、修改数据4、查询语句 二、主键三、外键和连接1、外键2、连接 一、增删改查 1、添加数据 INSERT INTO 表名[(字段名[,字段名]…)] VALUES (值的列表); --[]表示里面的内容可选添加数据分为插入数据记录和插入查询结果 插入数据…

Patreon是什么?如何用虚拟卡订阅Patreon上的艺术家?详细教程

Patreon是什么&#xff1f; Patreon 是目前世界上最受欢迎的会员平台之一。 它在过去几年中引起了不小的轰动&#xff0c;目前被全球的内容创作者所使用。 内容创作者和艺术家通常很难让粉丝在经济上支持他们。 通过使用像 Patreon 这样的平台&#xff0c;创作者和艺术家可以…

arcgis使用面shp文件裁剪线shp文件报错

水系数据裁剪&#xff0c;输出为空&#xff1a; ArcGIS必会的几个工具的应用 --提取、分割、融合、裁剪&#xff08;矢&#xff09;、合并、追加、镶嵌、裁剪&#xff08;栅&#xff09;、重采样_arcgis分割-CSDN博客 下面的方法都不行&#xff1a; ArcGIS Clip&#xff08;裁…

Linux 安装系统可视化监控工具 Netdata

目录 About 监控工具 NetdataLinux 系统安装 Netdata关于 openEuler1、查看内核信息2、查看主机信息3、查看 dnf 包管理器的版本 Netdata 安装1、更新系统环境相关 rpm 包2、查看 netdata 包信息3、安装 netdata 包4、编辑 netdata.conf 配置5、启动 netdata 服务6、查看 netda…

liunx环境变量学习总结

环境变量 在操作系统中&#xff0c;环境变量是一种特殊的变量&#xff0c;它们为运行的进程提供全局配置信息和系统环境设定。本文将介绍如何自定义、删除环境变量&#xff0c;特别是对重要环境变量PATH的管理和定制&#xff0c;以及与环境变量相关的函数使用。 自定义环境变…

李廉洋:4.9黄金屡创新高。黄金原油晚间最新分析建议。

但当下不管是战争因素所带来的避险情绪影响还是美国降息与否所带来的经济影响都无疑还是支撑着黄金继续走高&#xff0c;那么接下来&#xff0c;只要市场不出现较大的利空影响&#xff0c;黄金都不会有较大的回调力度&#xff0c;所以我们当下不管是短线还是长线仍旧以继续看多…

基于SSM+Jsp+Mysql的物流管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

到底有什么是 Node.js 无法实现的?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它使得 JavaScript 能够脱离浏览器在服务器端运行。Node.js 以其非阻塞 I/O 和事件驱动的特性而广受欢迎&#xff0c;尤其在构建快速、可伸缩的网络应用方面表现出色。然而&#xff0c;尽管 Node.js 非常强…

定制一套ERP系统怎么样?大概要多少钱?

定制一套ERP系统怎么样&#xff1f;大概要多少钱&#xff1f;这篇内容3000字&#xff0c;纯手打。全部都是我们9年来沉淀的实际经验。 作为有9年系统定制开发经验的乙方厂商&#xff0c;定制ERP系统可以粗略划分为3个方向&#xff1a; ERP管理系统模板&#xff0c;可直接查看和…

MySQL中数据库、表的操作

文章目录 一、管理数据库1.1、连接数据库1.2、创建库1.3、选择数据库1.4、修改数据库名称1.5、查看数据库信息1.6、删除库 二、定义数据表字段2.1、数据表字段的数据类型2.2、数据表字段属性2.3、约束讲解2.3.1、约束的定义1&#xff09;为什么需要约束2&#xff09;什么是约束…

Matplotlib实现数据可视化

Matplotlib是Python中应用较为广泛的绘图工具之一&#xff0c;首次发布于2007年。它在函数设计上参考了MATLAB&#xff0c;因此名字以"Mat"开头&#xff0c;中间的"plot"代表绘图功能&#xff0c;结尾的"lib"表示它是一个集合。Matplotlib支持众…

Unity多线程简单示例

using UnityEngine; using System.Threading;public class texxxst : MonoBehaviour {Thread thread;void Start(){// 创建一个新的线程&#xff0c;并传入要执行的方法thread new Thread(new ThreadStart(DoWork));// 启动线程thread.Start();}void DoWork(){for (int i 0; …