Python学习从0到1 day11 Python数据容器.2.元组

世界安静的时候,我只能听到自己的声音

                                            —— 24.2.1

为什么需要元组?

元组同列表一样,都是可以封装多个,不同类型的元素在内,最大的不同点在于:

列表是可以修改的

元组一旦定义完成,就不可修改

所以当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就十分合适

一、定义元组

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

定义元组字面量:

(数据,数据……,数据)

定义元组变量:

元组名 = (数据,数据,……,数据)

定义空元组:

元组名 = ()        # 方式1

元组名 = tuple()        # 方式2

注意:元组若只有一个数据,这个数据后面也要添加逗号

#定义元组字面量
(1,2,3,"一切都会好的",True)
#定义元组变量
arr = (1,1,4,"苦难是花开的伏笔","一切都会好的")
#定义空元组
arr1 = ()         #方式1
arr2 = tuple()    #方式2
print(type(arr1))   # 打印元组类型
print(arr)

#如果元组只有一个数据,这个数据之后要添加逗号
arr3 = ("一切都会好的,我一直相信",)
print(type(arr3))

二、元组的嵌套

元组中的类型不受限,所以可以在元组中再嵌套元组

使用中括号索引取出具体的内容

t = ((0,1,2,3,4,5),(3,8,7,5,9))
print(t[1][4])

三、元组的相关操作

           方法                                                                作用

        index()                        查找某个数据,如果数据存在则返回对应的下标,否则报错

        count()                                   统计某个数据在当前元组出现的次数

        len(元组)                                            统计元组内的元素个数

                                        元组不可修改

1.index() 查找某个数据

元组名.index(查找的数据)

可以用变量接收

arr = (1,1,4,"苦难是花开的伏笔","一切都会好的")
index1 = arr.index("一切都会好的")
print(f"数组arr中(一切都会好的)的下标是{index1}")

2.count(),统计某个元素在元组内出现的次数

元组名.count(统计的元素)

可以用变量接收

Tuple = ("一切都会好的","我一直相信","万事胜意","苦难是花开的伏笔","我一直相信","我一直相信","我一直相信")
num = Tuple.count("我一直相信")
print(f"Tuple在元组内共有{num}个我一直相信")

3.len(),统计元组中元素的数量

len(元组名)

可以用变量接收

# len 统计元组元素数量
Tuple1 = (9,7,8,5,6,1,4,2,3,13,15,19,21,27,36,45,54,63,72,81)
count = len(Tuple1)
print(count)

4.元组的遍历

①for循环 ②while循环

Tuple = ("一切都会好的","我一直相信","万事胜意","苦难是花开的伏笔")

# 元组的遍历 while循环
index = 0
while index < len(Tuple):
    print(Tuple[index])
    index += 1

# 元组的遍历 for循环
for i in Tuple:
    print(i)

5.元组的相关操作——注意事项

① 不可以修改元组的内容,否则会直接报错

② 可以修改元组内的list(列表)的内容(修改元素、增加、删除、反转等)

③ 多数特性和列表(list)一致(有序、任意数量元素、允许重复元素),不同点在于不可以修改的特性

四、练习案例:元组的基本操作

定义一个元组,内容是:('周杰伦',11,['football','music']),记录的是一个学生的信息(姓名、年龄、爱好)

请通过元组的功能(方法),对其进行:

1. 查询其年龄所在的下标位置

2. 查询学生的姓名

3. 删除学生爱好中的football

4. 增加爱好:coding到爱好list(列表)内

Tuple = ('周杰伦',11,['football','music'])
print(Tuple.index(11))
print(Tuple[0])
del Tuple[2][0]
print(f'删除学生爱好中的football后的元组为:{Tuple}')
Tuple[2].append('coding')
print(f'增加爱好coding后的元组为:{Tuple}')

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

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

相关文章

测试C#调用OpenCvSharp和IronOcr从摄像头中识别文字

学习了基于OpenCvSharp获取摄像头数据&#xff0c;同时学习了基于IronOcr的文字识别用法&#xff0c;将这两者结合即是从摄像头中识别文字。本文测试C#调用OpenCvSharp和IronOcr从摄像头中识别文字的基本用法、。   新版Winform项目&#xff0c;在Nuget包管理器中添加以下程序…

检测头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图

左图:ResNet 的一个模块。右图:复杂度大致相同的 ResNeXt 模块,基数(cardinality)为32。图中的一层表示为(输入通道数,滤波器大小,输出通道数)。 1. 思路 ResNeXt是微软研究院在2017年发表的成果。它的设计灵感来自于经典的ResNet模型,但ResNeXt有个特别之处:它采用…

记elasticsearch CPU负载100%问题

记elasticsearch CPU负载100%问题 环境&#xff1a;问题表现&#xff1a;初步排查&#xff1a;日志查询hot_thread 深入查询当前elasticsearch正在运行的Task查看Task详情解决问题对导致问题的原因的几个猜测问题复现&#xff1a;导致问题的原因。json导入规则问题json导入规则…

Linux PC 操作系统如果想要达到 Windows 易用的水平还需要多少年

Linux PC 操作系统如果想要达到 Windows 易用的水平还需要多少年&#xff1f; 在开始前我分享下我的经历&#xff0c;刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;两年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些Linux 学习方法和资料&#xff0c;…

制造业实施QMS质量管理系统的作用是什么?

QMS质量管理系统是一个关键的组织管理工具&#xff0c;用于确保产品和服务的质量符合预期标准&#xff1b;通过有效地实施万界星空科技QMS&#xff0c;组织可以确保产品和服务的质量符合预期标准&#xff0c;提升客户满意度&#xff0c;增强市场竞争力。 一、QMS系统的特点&…

<网络安全>《12 数据库安全审计系统》

1 概念 数据库安全审计系统通过对用户访问数据库行为的记录、分析和汇报&#xff0c;来帮助用户事后生成合规报告、事故追根溯源&#xff0c;同时通过大数据搜索技术提供高效查询审计报告&#xff0c;定位事件原因&#xff0c;以便日后查询、分析、过滤&#xff0c;实现加强内…

2024年1月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

Transformer 改进点,BERT模型的优缺点和一些模型基本原理总结

Transformer的改进点 方差为d_k&#xff0c;需要除以根号d_k&#xff0c;把乘积的数值重新变为均值为0&#xff0c;方差为1. BERT 的优缺点 BERT 训练策略原因 BERT&#xff0c; Transformer&#xff0c; ELMO 的特点&#xff0c;优缺点 之前看过多篇博客&#xff0c;和视频…

废品上门回收系统开发:创新、可持续与便捷

随着科技的不断进步&#xff0c;我们生活的方方面面都在逐步实现数字化转型。其中&#xff0c;废品处理作为城市管理的重要组成部分&#xff0c;同样面临着革新与升级的需求。本文将探讨废品上门回收系统开发的重要性和必要性&#xff0c;并分析如何实现这一系统的可持续性和便…

华为云CodeArts Snap荣获信通院优秀大模型案例及两项荣誉证书

2024年1月25日&#xff0c;中国人工智能产业发展联盟智能化软件工程工作组&#xff08;AI for Software Engineering&#xff0c;下文简称AI4SE&#xff09;在京召开首届“AI4SE创新巡航”活动。在活动上&#xff0c;华为云大模型辅助系统测试代码生成荣获“2023AI4SE银弹优秀案…

Axure 动态面板初使用-实现简单的tab切换页面效果

使用工具版本 Axure 9 实现的效果 步骤过程 1、打开Axure 9&#xff0c;默认进入一个空白页&#xff0c;首先从元件库拉一个动态面板到页面中&#xff0c;位置肯定是C位咯~ 2、将面板尺寸调整一下&#xff0c;设置成你喜欢的数字&#xff0c;比如我就喜欢800600 3、然后…

央视见证|“看见中国汽车”走进首家汽车供应链企业东软睿驰

由工业和信息化部支持指导&#xff0c;中国汽车工业协会和央视网联合出品的2023《看见中国汽车》专题东软睿驰篇正式上线&#xff0c;记录品牌向上专项行动走进首家汽车供应链企业&#xff0c;展示东软睿驰围绕“成为OEM 软件定义汽车时代最可信赖的合作伙伴”核心战略的创新发…

安卓线性布局LinearLayout

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:…

测试环境搭建整套大数据系统(一:基础配置,修改hostname,hosts,免密,时间同步)

一&#xff1a;使用服务器配置。 二&#xff1a;修改服务器名称hostname&#xff0c;hosts。 在 Linux 系统中&#xff0c;hostname 和 /etc/hosts 文件分别用于管理主机名和主机名解析。 在三台服务器上&#xff0c;分别执行以下命令。 vim /etc/hostnamexdso-hadoop-test-0…

解释性人工智能(XAI)

引言 解释性人工智能&#xff08;XAI&#xff09;是指一类旨在使人能够理解和解释机器学习模型的方法和技术。XAI的目标是提高AI系统的透明度和可理解性&#xff0c;让人们能够理解机器学习模型的决策过程、推理方式和结果。这对于社会应用和用户信任非常重要&#xff0c;因为A…

计算机速成课Crash Course - 26. 图形用户界面

今天继续计算机速成课Crash Course的系列讲解。 更多技术文章&#xff0c;全网首发公众号 “摸鱼IT” 锁定 -上午11点 - &#xff0c;感谢大家关注、转发、点赞&#xff01; 计算机速成课Crash Course - 26. 图形用户界面 (qq.com) 26. 图形用户界面 我们上集最后&#xff0…

【人工智能领域之深度学习】

人工智能领域之深度学习 深度学习的进展深度学习在过去几年取得了很多新进展。以下是其中一些重要的方面&#xff1a;总结 深度学习的进展 深度学习是人工智能领域的一个重要分支&#xff0c;它利用神经网络模拟人类大脑的学习过程&#xff0c;通过大量数据训练模型&#xff0…

虚拟机(VMware)ubuntu16.04 直接连接网口设备 USRP 吊舱

编辑虚拟网络编辑器 点击之后 选择网卡之后&#xff0c;点击确定。 电脑配置 使用了&#xff1a;192.168.2.56 虚拟机内部配置 和PC的配置一致

机器学习 - 代价函数

场景 上次简单学习了支持向量机的概念。概念如下&#xff1a; 支持向量机&#xff08;SVM&#xff09;&#xff1a;SVM是一种监督学习算法&#xff0c;常用于分类问题。它的目标是找到一个超平面&#xff08;在二维空间中是一条线&#xff0c;在更高维空间中是一个面&#xf…

简单实践 java spring cloud nacos注册中心

1.概要 1.1 说明 使用nacos做为注册中 1.2 要点 spring-cloud-alibaba-dependenciesspring-cloud-starter-alibaba-nacos-discovery spring-boot-starter-web SpringBootApplication EnableDiscoveryClient SpringApplication.run(Main.class); RestController Reques…