python学习笔记------集合(set)

集合定义格式

基本语法:

#定义集合字面量

{元素,元素,元素......,元素}

#定义集合变量

变量名称={元素,元素,元素......,元素}

#定义空集合

变量名称=set()

#定义集合字面量  {元素,元素,元素......,元素}
{1,2,7,"zhangsan"}
#定义集合变量   变量名称={元素,元素,元素......,元素}
name={3,"zhangsan",5,"lisi"}
print(f"name的类型是{type(name)},name的内容:{name}")
#定义空集合  变量名称=set()
j=set()
print(f"j的类型是{type(j)},内容为:{j}")

集合的常用操作

 集合是无序的,所以集合不支持:下标索引访问,

但集合和列表一样允许修改

添加新元素

集合本身被修改,添加新元素

语法:集合.add(元素)

name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")

 

集合不允许重复,所以只添加一次"python" 

移除元素

语法:集合.pop()   从集合中随机取出元素

结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

#移除元素
my_set={3,"zhangsan",5,"lisi","lisi","wangwu"}
element=my_set.pop()
print(my_set)
print(element)

 清空集合

语法:集合.clear()  清空集合

结果:集合被清空

#清空集合
print(name)
name.clear()
print(name)

 取两个集合的差集

语法:集合1.difference(集合2)  取出集合1和集合2的差集(集合1有,集合2没有的)

结果:得到一个新集合,集合1和集合2不变

#取两集合差集
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.difference(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")

 消除2个集合的差集

语法:集合1.diference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

#消除两集合差集
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
my_set1.difference_update(my_set2)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")

 

 合并集合

语法:集合1.union(集合2) 

结果:得到新集合,集合1和集合2不变

#合并集合
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.union(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")

统计集合元素数量

语法:len(集合)

注意:集合会去重

集合的遍历

集合不支持下标索引,所以不能用while循环

可以用for循环

#定义集合字面量  {元素,元素,元素......,元素}
{1,2,7,"zhangsan"}
#定义集合变量   变量名称={元素,元素,元素......,元素}
name={3,"zhangsan",5,"lisi"}
print(f"name的类型是{type(name)},name的内容:{name}")
#定义空集合  变量名称=set()
j=set()
print(f"j的类型是{type(j)},内容为:{j}")
#添加元素
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")#移除元素
my_set={3,"zhangsan",5,"lisi","lisi","wangwu"}
element=my_set.pop()
print(my_set)
print(element)#清空集合
print(name)
name.clear()
print(name)#取两集合差集
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.difference(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")#消除两集合差集
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
my_set1.difference_update(my_set2)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")#合并集合
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.union(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")#遍历元素
for i in my_set1:print(i)

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

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

相关文章

窗口(c++题解)

题目描述 在某图形操作系统中,有 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。 窗口的边界上的点也属于该窗口。 窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。 当你点击…

利用Amazon Bedrock畅玩Claude 3等多种领先模型,抢占AI高地(体验倒计时4小时)

快乐的时间总是短暂的,Claude 3 在亚马逊云科技上限时体验仅剩4小时,上次分享了入门级操作教程,本期给大家带来AWS Lambda Amazon Bedrock一起构建可以便捷使用的Claude 3接口 AWS Lambda AWS Lambda 是一项计算服务,可以运行您…

算法:上楼梯(递归)

Description 假如有n个台阶,一次只能上1个台阶或2个台阶,请问走到第n个台阶有几种走法?为便于读者理解题意,这里举例说明如下:假如有3个台阶,那么总计就有3种走法:第一种为每次上1个台阶&#x…

代码随想录 贪心算法-简单题目

目录 455.分发饼干 1005.K次取反后最大化的数组和 860.柠檬水找零 455.分发饼干 455. 分发饼干 简单 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i]&am…

腾讯 后端 一面(115min)

> 3.3投递 3.5测评 3.7约面 > 03.07 技术架构团队 一. 面试官介绍部门 二. 自我介绍 三. 拷打项目 1. 为什么、怎么用微服务架构改写 2. token无感刷新 3. ipfs用来干什么 为什么又用了minio 4. 怎么用redis做缓存的,缓…

小白也能上手的爬虫项目:从零开始学习数据抓取

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

基于51单片机的定时器时钟设计[proteus仿真]

基于51单片机的定时器时钟设计[proteus仿真] 时钟设计检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的定时器时钟设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥&…

Git分支管理(Git分支的原理、创建、切换、合并、删除分支)

系列文章目录 文章一:Git基本操作 文章目录 系列文章目录前言一、Git分支是什么二、Git分支的原理三、创建分支四、切换分支五、合并分支六、删除分支 前言 在上一篇文章中,我们学习了如何使用Git的一些基本操作,例如安装Git、创建本地仓库…

IDEA编译安卓源码TVBox

因为电视x受限,无法观看电视直播,为了春晚不受影响,于是网络一顿搜索,试过多个APP,偶尔找到这款开源的TVBox,寒假在家,随便拿来练练手,学习安卓APP的编写,此文做以记录&a…

栈与队列的故事

​​​​​​​ 目录 ​编辑​​​​​​​ 一、栈 1.1栈的概念及结构 1.2栈的实现 1、实现支持动态增长的栈 2、初始化栈 3、入栈 4、出栈 5、获取栈顶元素 6、检测栈是否为空 7、获取栈中有效元素个数 8、销毁栈 9、测试 1.3源码 二、队列 2.1队列的概念及结构…

[C++] Windows中字符串函数的种类

文章目录 C标准库函数VC CRT函数Win32 APILinux C标准库函数 #include || #include <string.h> || #include 都可以使用以下函数&#xff1a; char *strcpy(char *dest, const char *src) //将Src字符串拷贝到Dst字符串地址。没有目标内存大小检查&#xff0c;可能会导致…

Python 强大邮件处理库 Imbox

目录 IMAP Mailbox Imbox 安装 特性 提取邮件内容 处理附件 安全性 示例 1&#xff1a;读取收件箱中的邮件 2&#xff1a;搜索并下载附件 3&#xff1a;连接到IMAP服务器获取所有邮件 结论 IMAP Mailbox IMAP&#xff08;Internet Message Access Protocol&#x…

解放生产力,AI加持你也能做这些事!

去年网上流行一个说法叫一人企业或超级IP。一个人就是一家公司&#xff0c;可以更加专注于自身核心技能。既能对工作拥有更大的自主性和控制力&#xff0c;又能舍弃了传统公司管理等繁琐的事务工作&#xff0c;可以全面释放自己的兴趣和潜力。 这个概念给笔者留下了比较深的印…

使用Julia语言和R语言实现K-均值

K-均值算法基础 K-均值聚类算法属于一种无监督学习的方法&#xff0c;通过迭代的方式将数据划分为K个不重叠的子集&#xff08;簇&#xff09;&#xff0c;每个子集由其内部数据点的平均值来表示。计算方法大体如下&#xff1a; 1.初始化簇中心 选择K个数据点作为初始的簇中心…

2024.3.9每日一题

LeetCode 找出数组的第 K 大和 题目链接&#xff1a;2386. 找出数组的第 K 大和 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个整数数组 nums 和一个 正 整数 k 。你可以选择数组的任一 子序列 并且对其全部元素求和。 数组的 第 k 大和 定义为&#xff1a;可…

实用软件分享之自动清理过期备份文件清理文件夹

实用软件分享之自动清理过期备份文件清理文件夹&#xff0c;单文件程序&#xff0c;把程序放在要清理的文件夹内&#xff0c;运行后&#xff0c;可以设置清理指定文件后缀&#xff0c;支持设置保留个数&#xff0c;按文件的修改时候&#xff0c;清理掉最早的文件 初步讲解&am…

【算法面试题】-04

执行时长 def min_execution_time(n, size, tasks):a 0ans sizei 0while i < size:tmp tasks[i]a tmpif a < n:a 0else:a - ni 1ans a // nif a % n ! 0:ans 1return ans# 读取输入 n int(input()) size int(input()) tasks list(map(int, input().split()))…

ElasticSearch之排序,fielddata和docvalue

写在前面 es搜索返回结果的排序默认是按照得分的高低来排的&#xff0c;本文来看下如何按照字段来排序&#xff0c;实现类似于MySQL的order by xxx的效果。 1&#xff1a;什么是fileddata和doc_value 参考ElasticSearch之零碎知识点 和一文带你彻底弄懂ES中的doc_values和fi…

[QT]自定义的QtabWidget

需求 最近有一个需求就是一个QTabWidget要求有四个tab页在左侧用于显示主页面&#xff0c;在右侧有一个关于按钮&#xff0c;点击后用于弹出窗口显示一些程序相关信息。主要是怎么实现右侧按钮 相关代码 #ifndef MYTABWIDGET_H #define MYTABWIDGET_H#include <QWidget&g…

[ROS 系列学习教程] rosbag C++ API

ROS 系列学习教程(总目录) 本文目录 一、rosbag::Bag1.1 常用接口1.2 其他接口 二、rosbag::View2.1 常用接口2.1.1 代码示例 rosbag 的 C API 主要有两个类&#xff0c;用于写bag文件的Bag类&#xff0c;和用于读bag文件的View类。 一、rosbag::Bag 用于写bag文件。 头文件…