【创作赢红包】python学习——【第七弹】

news2025/1/18 17:06:31

前言

上一篇文章 python学习——【第六弹】中介绍了 python中的字典操作,这篇文章接着学习python中的可变序列 集合

集合

1: 集合是python语言提供的内置数据结构,具有无序性(集合中的元素无法通过索引下标访问,并且每次输出时元素的排序顺序可能都不相同。),互异性确定性

2 :与列表、字典一样都属于可变类型的序列;但集合中的元素是不能重复的,因此可以利用集合为一组数据去重。

3: 集合是没有value的字典​

创建方式

1:可以直接使用花括号创建: set_name={11,22,‘hello’,‘world’}

2:使用内置函数set() 创建(set() 函数为 Python 的内置函数,其功能是将字符串、列表、元组、range 对象等可迭代对象转换成集合。)创建方式: set_name=set(iteration)

jihe={11,22,33,44}
print(jihe,type(jihe),id(jihe))
# {33, 11, 44, 22} <class 'set'> 140157225363408

jihe2=set(('hello','world',11)) #注意是双括号
print(jihe2,type(jihe2),id(jihe2))
# {'hello', 11, 'world'} <class 'set'> 140157225362928

set1 = set("hello,world")
set2 = set([1, 2, 3, 4, 5])
set3 = set((1, 2, 3, 4, 5))
set4 = set(range(1, 9))
print(set1) #{'o', 'd', 'e', 'r', ',', 'w', 'h', 'l'}
print(set2) #{1, 2, 3, 4, 5}
print(set3) #{1, 2, 3, 4, 5}
print(set4) #{1, 2, 3, 4, 5, 6, 7, 8}

字典转set集合,需要注意的是,只取了字典的key,相当于将字典中的dict.keys()列表转成set集合。

jihe4=set({'a':2,'b':3,'c':4})
print(jihe4)
# {'c', 'a', 'b'}

空集合的创建:

如果要创建空集合,只能使用 set() 函数实现。
因为直接使用一对 {},Python 解释器会将其视为一个空字典。

s=set()
print(s,type(s),id(s))
# set() <class 'set'> 140549035954496
s1=set([])#列表
print(s1,type(s1),id(s1))
# set() <class 'set'> 140549035954736
s2=set(())#元组
print(s2,type(s2),id(s2))
# set() <class 'set'> 140549035954976
s3=set({})#字典
print(s3,type(s3),id(s3))
# t() <class 'set'> 140549035955456

访问集合中的元素

由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来,或者使用 in 关键字查询集合中是否存在指定值。

sets= {11,'c',1,(1,2,3),'hello'}
for setss in sets:
    print(setss,end=' ') 
 #1 11 (1, 2, 3) c hello 

删除集合元素

使用 remove() 方法,语法格式如下:set_name.remove(element)

set1 = {11, 'hello', 1, (1, 2, 3), 'world', 'aa'}
set1.remove(11)
print(set1)
# {1, 'hello', 'world', (1, 2, 3), 'aa'}

如果删除的元素不再集合内,则会抛出 KeyError 错误

在这里插入图片描述

也可以使用 discard() 方法,该方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,不会抛出任何错误,但会返回原集合。

在这里插入图片描述

使用pop()函数随机移除集合中的一个元素

x = {"apple", "banana", "cherry"}
set.pop(x)
print(x)
# {'apple', 'cherry'}

删除集合

可以通过del()关键字删除整个集合对象

set1 = {11, 'hello', 1, (1, 2, 3), 'world', 'aa'}
print(set1)
del set1
print(set1)
# NameError: name 'set1' is not defined

向集合中添加元素

可使用set类型提供的 add() 方法实现,add() 方法添加的元素,只能是数字、字符串、元组等不可变类型或者布尔类型,不能添加列表、字典、集合等可变的数据,否则Python解释器会抛出TypeError错误。如果该元素已存在,则 add() 方法就不会添加元素

set2= {1, 2, 3}
print('添加元素之前集合的信息:',set2,type(set2),id(set2))
# {1, 2, 3} <class 'set'> 140033352959952
set2.add((1, 2))
print('添加元素后集合的信息:',set2,type(set2),id(set2))
# 添加元素后集合的信息: {(1, 2), 1, 2, 3} <class 'set'> 140033352959952

在这里插入图片描述

使用update()函数向当前的集合中添加集合

x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"} 
x.update(y) 
print(x)
# {'cherry', 'runoob', 'banana', 'apple', 'google'}

集合的运算

在这里插入图片描述

每篇一语

工欲善其事,必先利其器!

到此对于python中的序列就介绍完了,接下来还会持续更新python学习——【第N弹】

如有不足,感谢指正!

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

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

相关文章

Qt框架概述

Qt框架概述一、什么是Qt二、了解QtCreator三、创建Qt项目*Qt项目框架及文件介绍四、设置窗口属性五、按钮创建按钮方式一按钮属性设置创建按钮方式二六、对象模型一、什么是Qt 概念&#xff1a; Qt是一个基于C的 跨平台的图形用户界面应用程序框架。 常见GUI Qt &#xff1a;…

状态错误 MSB8040,此项目需要缓解了 Spectre 漏洞的库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体

“Spectre Mitigation”缓解错误 如果出现“Spectre Mitigation”这种错误&#xff0c;就要了解下PIPE技术&#xff1a;流水线技术&#xff0c;比如3级流水线&#xff0c;避免CPU空闲&#xff0c;不浪费时间&#xff0c;但是前提是没有跳转&#xff0c;指令都是顺序执行的&…

pytorch transforms图像增强

一、前言 在学习自己的项目发现自己有很多基础知识不牢&#xff0c;对于图像处理有点不太清楚&#xff0c;因此写下来作为自己的笔记&#xff0c;主要是我想自己动手写一下每一句代码到底做了什么&#xff0c;而不是单纯的我看了知道了它做了什么&#xff0c;说白了&#xff0c…

【Maven】开发自己的starter依赖

【Maven】开发自己的starter依赖 文章目录【Maven】开发自己的starter依赖1. 准备工作1.1 创建一个项目1.2 修改pom文件1.3 修改项目结构2. 动手实现2.1 创建客户端类2.2 创建配置类2.3 配置路径2.4 下载到本地仓库3. 测试1. 准备工作 1.1 创建一个项目 打开idea&#xff0c;…

BP神经网络原来就是曲线拟合

本站原创文章&#xff0c;转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 在初学BP神经网络的时候&#xff0c;总是非常抽象和难理解 但是&#xff0c;学久了会发现&#xff0c;BP神经网络原来就是曲线拟合&#xff01; 一下子才具体、深入的理解到BP神经网络是什么 本文…

字节,腾讯过来的面试自动化测试就这水平吗?鬼知道经历了什么?

本人12年从业经验&#xff0c;曾就职于美团测试开发框架组&#xff0c;搭建过美团platuo测试框架&#xff0c;thrift测试框架&#xff0c;自动化测试平台&#xff0c;熟悉python3&#xff0c;java&#xff0c;vue&#xff0c;在多家公司从0到1搭建过自动化测试框架&#xff0c;…

linux文件编辑--vi

目录标题vi/vim中三种模式命令模式下的常用命令--光标移动输入模式末行模式vim中常用的操作类型命令行模式下的常用命令--复制、粘贴、删除命令模式下的常用命令--文件内容查找命令模式中的基本操作--撤销编辑及保存退出末行模式中的基本操作--保存文件内容及退出vi编辑器末行模…

GitHub标星15w,如何用Python实现所有算法?

学会了 Python 基础知识&#xff0c;想进阶一下&#xff0c;那就来点算法吧&#xff01;毕竟编程语言只是工具&#xff0c;结构算法才是灵魂。 新手如何入门 Python 算法&#xff1f; 几位印度小哥在 GitHub 上建了一个各种 Python 算法的新手入门大全。从原理到代码&#xf…

[论文阅读RGBD-SOD][2022_TCSVT_MoADNet][轻量化]

MoADNet: Mobile Asymmetric Dual-Stream Networks for Real-Time and Lightweight RGB-D Salient Object Detection paper&#xff1a;https://ieeexplore.ieee.org/abstract/document/9789193 动机 尽管已有许多优秀的RGB-D SOD技术被提出&#xff0c;但它们大多关注性能…

面试篇-从今天开始彻底分清Java内存模型JMM和运行时数据区

“相信很多人会把Java内存模型与Java运行时数据区给搞混淆” Java内存模型和Java运行时数据区是两个不同的概念&#xff0c;很容易让人混淆。下面简单介绍一下它们的区别&#xff1a; Java内存模型&#xff08;JMM&#xff09;是Java虚拟机规范中定义的一种内存模型&#xff…

如何优化快速排序?

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 还记得上次的快速排序吗&#xff1f;还记得 key 是怎么取的吗&#xff1f;当时我直接把数组的起始元素作为了 key 值&#xff0c;其实这样做是有弊端的&#xff0c;试想&#xff1a;一个降…

SAP Business Technology Platform (BTP)的架构理解

查资料看到的&#xff0c;转一下&#xff0c;附上链接&#xff1a; SAP Business Technology Platform (BTP)的架构理解 长期以来&#xff0c;我在与客户和伙伴的沟通交流中发现大家依然对SAP业务技术平台 – SAP Business Technology Platform (以下简称BTP)纯有各种疑惑&…

webgl-图形非矩阵旋转

知识拓展 由&#xff08;x1,y1&#xff09;旋转β角度到&#xff08;x2,y2&#xff09; 根据圆极坐标方程 x1 r*cosα y1 r*sinα 可得 x2 r*cos(α β) r*cosα*cosβ - r*sinα*sinβ,因为x1 r*cosα&#xff0c;y1 r*sinα&#xff0c;所以x2 x1*cosβ -y1*sinβ…

如何进行移动设备资产管理

随着越来越多的移动设备进入和访问组织的企业资源&#xff0c;管理员必须监视和控制对企业数据的访问。与传统工作站不同&#xff0c;传统工作站位于企业的物理工作区内&#xff0c;移动设备从多个位置使用&#xff0c;从而使移动资产管理过程更加复杂。 什么是移动资产管理 …

java基础集合面试题

什么是集合 集合就是一个放数据的容器&#xff0c;准确的说是放数据对象引用的容器 集合类存放的都是对象的引用&#xff0c;而不是对象的本身 集合类型主要有3种&#xff1a;set(集&#xff09;、list(列表&#xff09;和map(映射)。 集合的特点 集合的特点主要有如下两点&…

LMKD分享

背景 Android是一个多任务系统&#xff0c;可以同时运行多个程序&#xff0c;一般来说&#xff0c;启动运行一个程序是有一定的时间开销的&#xff0c;因此为了加快运行速度&#xff0c;当你退出一个程序时&#xff0c;Android并不会立即杀掉它&#xff0c;这样下次再运行该程…

【MySQL优化】快速入门慢SQL优化

MySQL B树结构&#xff08;二叉排序树&#xff09; 索引 SQL优化&#xff0c;主要就是在优化索引 索引:相当于书的目录 索引:index是帮助MYSQL高效获取数据的数据结构。索引是数据结构&#xff08;树:B树(默认)、Hash树…) 索引的弊端: 1.索引本身很大&#xff0c;可以存…

Spring Cloud Config配置服务及那些你不知道的坑

目录 1、为什么选择Spring Cloud Config 1.1 集中式管理 1.2 动态修改配置 2、Spring Cloud Config 简介 3、服务端配置 3.1 添加依赖 3.2 开启服务注册 3.3 添加YML配置 3.4 创建远程分支及Profile配置文件 3.5 启动并测试服务 4、客户端配置 4.1 添加依赖 4.2 开…

2.3-6循环链表

原理的单链表和循环单链表的区别&#xff1a; 初始化循环单链表时&#xff0c;使头节点next指针指向头节点。 判断循环单链表是否为空。 对比&#xff1a; 单链表&#xff1a;if(L->next NULL) 双链表&#xff1a;if(L->nextL) 判断循环单链表的结点p是否为表尾结点…

汇聚音视频新能量 探索行业新蓝海

视频行业卷成红海&#xff0c;如何突破瓶颈&#xff0c;去探索行业的新蓝海&#xff0c;本次LiveVideoStackCon 2022北京站邀请到快手高级副总裁、研发线负责人于冰&#xff0c;以《汇聚音视频新能量&#xff0c;探索行业新蓝海》为题&#xff0c;从视频行业趋势和痛点出发&…