Python学习笔记8:入门知识(八)

前言

本篇是元组的知识点学习以及知识点的补充

元组

概念

不可变的列表,叫做元组。
在之前列表的特性中,我们就说过列表是可变的,但是在实际使用过程中,我们有时候仍然需要一系列不可变的元素,这个时候就需要元组出场了。

定义

元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

dimensions = (2024, 6,14)
print(dimensions)

在这里插入图片描述
注意:元组可以看出特殊的列表,但是元组的元素是不可变的。之前讲过集合,集合的元素也是不可变的,同理,元组的元素没有办法可以修改。

元组元素是不可变的,没有增这一概念。只能通过将当前变量赋值一个更多元素的元组来实现一个类似于增加元素的操作。

tup = (1, 2, 3)
# 注意,单个元素后面有一个逗号,使其成为元组
new_tup = tup + (4,)
tup = new_tup
print(tup)

在这里插入图片描述

同增,元组的元素没有删的概念,只能模拟实现类似的操作。

同增,元组的元素没有增的概念,只能模拟实现类似的操作。

元组元素的查询,主要使用索引的方式,当然也可以使用切片的方式。还有其他复杂的方式,入门的话只讲这两个。

索引方式

tup = (0, 1, 2, 3)
print(tup[0])tup = (0, 1, 2, 3, 4)
# 获取索引1到3的元素,不包括4
subset = tup[1:4]
print(subset)

在这里插入图片描述

元组的知识入门就知道这些就行,记住元组是不可变的列表就好了。

补充知识

索引

这里索引单指列表,元组的索引。
很多时候索引有被叫做下标。
这里特别再讲一遍的原因是因为,索引是从0开始,0就是元组中的第一个元素。在大多数编程语言中都是如此,这与列表操作的底层实现相关。
当你使用索引去获取元素的值的时候,注意索引的值必须小于容器本身元素的数量,不然会报错的,不信可以试试。

  1. 正向索引。简单而言就是从0开始的索引。从容器头部开始计算,0是第一个,1是第二个,以此类推。
  2. 反向索引。简单来说就是从-1开始的索引。从容器尾部开始计算,-1是倒数第一个,-2是倒数第二个,依次类推。
tup = (1, 2, 3, 4)
print(tup[0])
print(tup[1])
print(tup[2])
print(tup[3])
print(tup[-1])
print(tup[-2])
print(tup[-3])
print(tup[-4])

在这里插入图片描述
大家可以试试这个,我这里不贴结果

tup = (1, 2, 3, 4)
print(tup[4])
print(tup[-5])

排序

列表的排序

列表的排序有两种方法,一个是使用sorted()函数排序,这种排序不会改变原有的列表元素顺序。另一种是使用列表的内置函数sort(),这种排序是直接操作原列表,所以会改变原列表元素的顺序。
单独讲一个反转列表的内置函数,防止大家不认识和错误使用。

my_list = [5, 1, 3, 4, 2]
print("最开始的my_list: ", my_list)
new_list = sorted(my_list)
print("sorted函数排序", new_list)
print("sorted函数排序后的my_list: ", my_list)
# 正序
my_list.sort()
print("sort()函数排序后的my_list:", my_list)
# 倒序
my_list.sort(reverse=True)
print("sort()函数排序后的my_list: ", my_list)
# 新的my_list
my_list = [5, 1, 3, 4, 2]
print("最开始的my_list: ", my_list)
# 反转列表,不是排序
my_list.reverse()
print("反转后的my_list: ", my_list)

在这里插入图片描述
大家好好观察一下每次的输出,了解这几个方法的差异。

集合的排序

集合本身是无序的,不支持保留插入的顺序,也不支持直接排序,但你可以将其转换为列表后进行排序,或者使用sorted()函数对集合元素进行排序,得到一个新的排序后的列表,最后给集合赋值,达到一个模拟的效果。
在这里插入图片描述

长度

有时候我们需要知道容器的长度(元素的数量),该怎么办呢?可以使用len()函数实现。

my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print("列表长度:", length)my_tuple = (1, 2, 3, 4, 5)
length = len(my_tuple)
print("元组长度:", length)my_set = {1, 2, 3, 4, 5}
length = len(my_set)
print("集合长度:", length)my_dict = {'a': 1, 'b': 2, 'c': 3}
length = len(my_dict)
print("字典长度:", length)

在这里插入图片描述

作业

元组的排序。

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

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

相关文章

代码解读 | Hybrid Transformers for Music Source Separation[06]

一、背景 0、Hybrid Transformer 论文解读 1、代码复现|Demucs Music Source Separation_demucs架构原理-CSDN博客 2、Hybrid Transformer 各个模块对应的代码具体在工程的哪个地方 3、Hybrid Transformer 各个模块的底层到底是个啥(初步感受)&#xff1…

八爪鱼现金流-022-mybatis插件加密和国密SM4算法

背景: 用户的金额数据,不希望被别人看到。 业务场景分析: 用户在页面上添加金额数据 -----> 服务器内存(加密、解密) -----> 存储数据库 调研及结果: 使用mybatis的拦截器插件,进行数…

win11电脑桌面倒计时提醒怎么设置?

在日常工作中,我们经常需要处理大量的工作任务,而且很多任务都有时间限制。如果将这些任务记录在桌面上,并设置倒计时提醒,无疑会大大提高我们的工作效率。想象一下,在繁忙的工作间隙,你只需一瞥桌面&#…

文件简单做二维码的方法,几步就能够完成操作

怎样用二维码来查看文件内容?随着网络的快速发展,通过二维码来查看文件是现在很常用的一种形式,能够更快让其他人获取文件内容,从而提升传播的速度和效率。比如用这种方式来下发通知文件、分享学习资料、浏览海报图片、传递个人简…

ESP32基础应用之esp32连接腾讯云并使用微信小程序控制的智能灯

文章目录 1. 项目简介1.1 功能接收1.2 使用资源1.3 测试平台 2 腾讯云物联网开发平台3 esp32设备开发3.1 准备参考例程3.2 vscode平台创建测试工程3.3 修改工程 问题总结使用PowerShell命令行终端生成的二维码不能用 1. 项目简介 1.1 功能接收 实现腾讯云创建项目与设备&…

防止暴力破解,教你如何在登录失败后实施10分钟账户锁定策略!

最近,在服务器上发现了异常的登录尝试。尽管您的团队已经采取了强密码策略和其他安全措施来加固服务器,但恶意程序仍然通过暴力破解的方式试图多次尝试猜测正确的凭据以获取访问权限。为了增强系统的安全性,特别是防止此类暴力破解攻击&#…

文章分享 | Ribo-seq与RNA-seq联合分析揭示uAUG-ds翻译调控机制

技术简介 RNA-seq主要从转录组水平分析基因的表达调控机制,检测用于核糖体翻译的RNA序列及二级结构。Ribo-seq主要用于检测核糖体翻译的起始位置、翻译富集区和翻译终止位置。RNA-seq与Ribo-seq联合分析可以准确检测mRNA上游5’UTR区的uORFs翻译调控结构&#xff0…

SSM小区疫情防控系统-计算机毕业设计源码03748

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 小区疫情防控系统,主要的模块包括查看首页、轮播图(轮播图管理)、社区公告管理(社区公告&#…

Opengauss开源4年了,都谁在向其贡献代码?

2020 年 6 月 30 日,华为将Opengauss正式开源,截止目前已经过去4年时间,社区力量对这款数据库产品都起到了哪些作用,谁的代码贡献更大一些? 根据社区官网信息统计,截止目前(2024年6月12日&…

查看电子磁盘ssd空间信息并释放zfs空间@FreeBSD

发现问题 在某宝买了一块32G的ssd电子盘,但是在FreeBSD里面使用df看到的空间较少,只有15G,一度怀疑是发错货了。不过自己清楚的记得swap分区还分了4G,这样铁定是大于16G的,应该是32G没错。但是少掉的那部分空间跑哪里…

安装前端依赖node-sass报错

文章目录 问题1:node-sass报错问题2:node-gyp报错问题3:node-sass再次报错问题4:node-sass三次报错 问题1:node-sass报错 问题描述:经常会碰到一个新的项目安装依赖时,会报node-sass版本的问题…

揭秘裂变客户背后的心理学:如何触动用户分享欲望?

在当今的社交媒体时代,裂变客户——即用户主动分享并推广某一产品或服务,已成为企业营销的重要策略。那么,如何触动用户的分享欲望呢?这背后其实隐藏着深刻的心理学原理。本文将以looka这个知名的国外设计工具为例,为s…

Spring Cloud Stream 消息驱动基础入门与实践总结

Spring Cloud Stream是用于构建与共享消息传递系统连接的高度可伸缩的事件驱动微服务框架,该框架提供了一个灵活的编程模型,它建立在已经建立和熟悉的Spring熟语和最佳实践上,包括支持持久化的发布/订阅、消费组以及消息分区这三个核心概念。…

激活和禁用Hierarchy面板上的物体

1、准备工作: (1) 在HIerarchy上添加待隐藏/显示的物体,名字自取。如:endImage (2) 在Inspector面板,该物体的名称前取消勾选(隐藏) (3) 在HIerarchy上添加按钮,名字自取。如:tip…

【机器学习300问】117、序列模型中的符号表示方法?以命名实体识别(NER)任务为例。

在序列模型中,特别是在命名实体识别(NER)任务中,我们通常会用一系列符号来表示输入序列、目标标签以及模型的结构和操作。本文列出一些常见的符号表示方法,结合NER任务进行解释。 一、什么是命名实体识别任务? (1&am…

YUV格式与RGB格式详解

图像处理 文章目录 图像处理前言YUV 格式YUV 采样 前言 像素格式描述了像素数据存储所用的格式,定义了像素在内存中的编码方式。RGB 和 YUV 为两种经常使用的像素格式。/ 1024 / 1024 2.63 MB 存储空间。 RGB 和 RGBA 格式 RGB 图像具有三个通道 R、G、B&#xff…

HyperBDR新版本上线,自动化容灾兼容再升级!

本次HyperBDR v5.5.0版本新增完成HCS(Huawei Cloud Stack)8.3.x和HCSO(Huawei Cloud Stack Online)自动化对接,另外还突破性完成了Oracle云(块存储模式)的自动化对接。 HyperBDR,云原生业务级别容灾工具。支…

确定性网络_v0

目录 一、背景二、技术参考文献 一、背景 确定性网络(Deterministic Networking)是提供确定性服务质量的网络技术,是在以太网的基础上为多种业务提供端到端确定性服务质量保障的一种新技术。通过对网络数据转发行为的控制,将时延…

【渗透测试】|dvwa命令注入乱码问题

法一: 解决方法如下: 1、按住winr,在运行框中输入cmd弹出命令行,在命令行中输入“control intl.cpl” 2、这个命令是使用control命令行工具来打开"区域和语言设置"对话框 3、选中对话框中的管理选项卡 4、可以看到这里…

linux 安装 Nginx 并部署 vue 项目

1、安装 yum install nginx2、使用 nginx 命令 查看nginx状态 systemctl status nginx 启动服务 systemctl start nginx停止服务 systemctl stop nginx重启服务 systemctl restart nginx修改配置后重载 systemctl reload nginx 加入开机自启动 systemctl enable ngin…