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)

在这里插入图片描述

作业

元组的排序。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

金融科技助力绿色金融:可持续发展新动力

随着全球气候变化和环境问题的日益严重,绿色金融作为推动环境保护和经济可持续发展的重要手段,已经受到越来越多的关注。而金融科技,作为科技与金融深度融合的产物,正以其独特的优势为绿色金融的发展注入新动力。本文将探讨金融科…

达梦导入dmp遇到的各种问题

1、无效的对象 导入的文件和新建的模型名称不一致的时候,提示无效的对象 2、编码不一致 length_in_char 或者都是编码不一致的问题导致的 首先查看需要导出的数据的编码,以及导出的模式的权限 3、使用当前配置好的模式,导出导入 4、创建用…

初始化三板斧 - centos7

1、关闭防火墙、关闭SELinux ① 立即关闭防火墙 systemctl stop firewalld ② 设置开机关闭防火墙 systemctl disable firewalld ③ 立即关闭SELinxu setenforce 0 ④ 设置开机关闭SELinux 将SELINUXenforcing 修改替换为 SELINUXdisabled vim /etc/selinux/config se…

源代码防泄密经验分享之安全上网篇

场景描述: 随着信息技术的发展,越来越多的新技术产品进入到政府、军事、科研等涉密单位。这些新技术产品在给工作人员带来便利的同时,也给信息安全保密工作带来了许多新的不容忽视的安全隐患,应引起高度重视。常规的内外网隔离手…

U-Mail邮件系统全面支持信创国产化,打造自主可控的邮件系统

长期以来,中国IT产业的底层架构和标准多由国际巨头所主导,这不仅限制了本土技术的创新发展,同时也给国家安全带来了潜在的挑战。为了应对这一现状,我国正逐步构建起一套独立且安全的IT生态系统,旨在实现技术的自主可控…

源代码防泄密的方法有哪些?

在当今发展潮流中,网络信息安全隐患变得越来越突出,信息泄漏事件时有发生。我们都知道,电子文件非常容易复制,可以通过各种途径如邮件、光盘、U盘、网络存储等进行传播。企事业单位的机密文件、研发源代码、图纸等核心技术机密资料…

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

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

12306 火车票价格解析 (PHP 解析)

1. 从接口拿数据 日期 出发站 终点站 都填上 xxx/otn/leftTicketPrice/queryAllPublicPrice?leftTicketDTO.train_date2024-06-15&leftTicketDTO.from_stationBJP&leftTicketDTO.to_stationSJP&purpose_codesADULT 返回的数据是这样的 {"validateMess…

MyBatis 关于查询语句上配置的详细内容

1. MyBatis 关于查询语句上配置的详细内容 文章目录 1. MyBatis 关于查询语句上配置的详细内容2. 准备工作3. SQL查询结果&#xff0c;返回为POJO实体类型4. SQL查询结果&#xff0c;返回为List<POJO\> 集合类型5. SQL查询结果&#xff0c;返回为Map 集合6. SQL查询结果&…

【后端】Java学习笔记(二周目-1)

环境 安装JDK8并配置环境变量 jvm核心类库jre jre开发工具jdk Java基础运行流程&#xff0c;代码从上到下&#xff0c;从左往右&#xff0c;只运行一次 桌面—>新建文件夹—>新建记事本—>打开编写代码 public class Hello{public static void main(String[] arg…

笔记98:按列压缩矩阵 csc_matrix 的 “含义”

1. 如何按列压缩矩阵&#xff1a; 注&#xff1a;按列压缩&#xff08;Compressed Sparse Column -- CSC&#xff09;&#xff0c;是一种使用三个特征数组就可以表示整个矩阵的方法&#xff1b; 标准二次规划问题 &#xff1a;状态量&#xff1a;矩阵&#xff1a;向量&#xff…

Blender:渲染输出

渲染输出界面 渲染设置界面&#xff1a; 输出设置界面&#xff1a; 输出文件格式 【文档】 视频导出格式&#xff1a; AVI JPEG 使用JPEG压缩的AVI。有损&#xff0c;能得到更小的文件&#xff0c;但大小无法与编解码器的压缩算法得到的文件相比。JPEG 压缩也是数字摄像机使用…

使用asyncua模块如何在opcua框架的Server端添加方法及在Client端调用方法

1. 在opcua框架的Server端添加方法 参考文章&#xff1a; freeopcua调用方法输入参数| Python解析数组到输入列表 为OPC UA python服务器/客户端添加安全性&#xff08;异步&#xff09; OPCUA和asyncua — [3] 添加方法 OPC UA的Server端新增方法的关键代码如下&#xff1a;…

英语学习笔记35——Our village

Our village 我们的村庄 词汇 Vocabulary photograph n. 照片 通常说&#xff1a;photo 复数&#xff1a;photos     picture 复数&#xff1a;pictures 搭配&#xff1a;take a photo 照相 以o结尾的单词复数es的&#xff1a; potato —— potatoes tomato —— tomatoe…

Cancer Cell | 樊嘉院士/张力烨团队解析转移性肝细胞癌的时空演变

肝细胞癌&#xff08;Hepatocellular Carcinoma&#xff0c;HCC&#xff09;作为全球癌症死亡率的第三大原因&#xff0c;对人类健康构成了严重威胁&#xff0c;尤其是HCC发展到转移阶段&#xff0c;治疗选择变得有限&#xff0c;患者预后通常较差。尽管近年来在HCC的研究取得了…

电脑屏幕监控软件有哪些?2025年监控软件排行榜

电脑屏幕监控软件有哪些&#xff1f;2025年监控软件排行榜 虽然现在还是2024年&#xff0c;但是有一些被广泛讨论和推荐的电脑屏幕监控软件&#xff0c;它们将在2025年异军突起&#xff0c;成为行业的引领者。 1.安企神软件&#xff1a; 功能全面的电脑屏幕监控软件&#xf…

有监督学习——梯度下降

1. 梯度下降 梯度下降&#xff08;Gradient Descent&#xff09;是计算机计算能力有限的条件下启用的逐步逼近、迭代求解方法&#xff0c;在理论上不保证下降求得最优解。 e.g. 假设有三维曲面表达函数空间&#xff0c;长(x)、宽(y)轴为子变量&#xff0c;高(z)是因变量&…

机器学习笔记 - LoRA:大型语言模型的低秩适应

一、简述 1、模型微调 随着大型语言模型 (LLM) 的规模增加到数千亿,对这些模型进行微调成为一项挑战。传统上,要微调模型,我们需要更新所有模型参数。这也称为完全微调 (FFT) 。下图详细概述了此方法的工作原理。 完全微调FFT 的计算成本和资源需求很大,因为更新每…

基于软件在环的飞控机建模仿真

安全关键系统&#xff08;Safety-Critical System&#xff0c;SCS&#xff09;是指由于某些行为或组合行为能够引发整体系统失效&#xff0c;继而导致财物损失、人员受伤等严重影响的系统&#xff0c;诸多安全关键领域如航空航天、核电系统、医疗设备、交通运输等领域的系统都属…

ansible安装wordpress

1.回顾 yum安装wordpress 查看别名 [rootlocalhost ~]# type ll ll 是 ls -l --colorauto 的别名设置别名 aliasyum install -y alias ymyum install -y# 使用别名 ym nginx# 取消别名 unalias ym# 基于LNMP做一个wordpressnginx mysql 5.7 PHP 7.4#1、初始化过程 修改主机名…