Tuple 元组

文章目录

  • 一、什么是元组 ?
  • 二、元组的具体操作
    • 2.1 创建元组
      • 2.1.1 tuple() 创建元组函数和 list() 创建列表函数总结
    • 2.2 元组的元素访问操作
    • 2.3 元组的元素计数操作
    • 2.4 zip 对象


一、什么是元组 ?

  •         列表属于可变序列,可以任意修改列表中的元素。

            元组的访问和处理速度比列表快。

            元组属于不可变序列,不能修改元组中的元素,因此,元组没有增加元素,修改元素,删除元素相关的方法。
    • 因此,只需要学习元组的创建和删除,元组中元素的访问和计数即可,元组支持如下操作

        1. 索引访问
        1. 切片操作
        1. 链接操作
        1. 成员关系操作
        1. 比较运算符
        1. 计数:元组长度len(),最大值max(),最小值min(),求和sum(),等

注意:元组的元素不能修改
  • 元组不可向列表一样通过下标去修改列表中的数据,如果直接修改会报出异常
    • 	a = (20,30,9,8,3)
      	a = [0]
      	a[3]=33 #异常
      

元组的元素访问和列表一样,如果是单个元素是具体的数据,如果是范围访问返回的仍然是元组对象
  • 	a=(20,10,30,9,8)
    	print(a[1])
    	print(type(a[1]))
    	print(a[1:3])
    	print(type(a[1:3]))
    	print(a[1:3])
    	print(a[:4])
    	print(a[::-1])
    
    • 运行结果:
      在这里插入图片描述


二、元组的具体操作


2.1 创建元组

  • 通过 “()” 创建元组,(小括号可以省略)

    • 		a=(10,20,30) 
      		# 或者 
      		a=10,20,30
      
      • 注意:如果元组中只有一个元素,则必须后面加逗号,这是因为解释器会把(1)解释为整数1,而 (1,)解释为元组

      • 	a = (1,) # 或者  a =1,
        	# 但是需要注意的是
        	a = (1) #这种写法并不是元组  如果元组里面只有一个元素要在最后面加,
        	print(type(a))
        

  • 通过 “tuple()” 函数创建(tuple(可迭代的对象)

    • 	b=tuple() #创建一个空元组对象
      	print(b)
      	b=tuple("abc")  # 创建一个元组对象,并根据传入的字符串迭代成元组
      	print(b)
      	b=tuple(range(3)) # 创建一个元组对象,并传入下标从0到3 在元组中迭代三个数字
      	print(b)
      	b=tuple([2,3,4]) # 创建一个元组对象,并传入列表在元组中把内容迭代出来
      	print(b)
      
      • 运行结果
        在这里插入图片描述

2.1.1 tuple() 创建元组函数和 list() 创建列表函数总结

  •         tuple() 可以接收列表,字符串,其他序列类型,迭代器生成元组
  •         list() 可以接收元组,字符串,其他序列类型,迭代器等生成列表


2.2 元组的元素访问操作

index(): 获取元素的下标
  • 	a=(20,10,30,9,8)
    	print(a.index(10))
    
    • 运行结果:1

count(): 获取元素在元组中出现的次数
  • 	a=(20,10,30,9,8,10)
    	print(a.count(10))
    
    • 运行结果:2

sorted(): 将元组中的数据进行排序,输出成一个新的列表对象
  • 列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法,如果对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象

  • 	a=(20,10,30,9,8)
    	print(sorted(a))
    
    • 运行结果:[8, 9, 10, 20, 30]

+ : 元组的拼接,元组可以直接用 “ + ” 拼接,将两个元组中的数据拼接成一个元组
  • 		a = (1, 20)
    		b = (30, 20)
    		print(a+b)
    
    • 运行结果:(1, 20, 30, 20)


2.3 元组的元素计数操作

len():获取元组的长度
max(): 获取元组中最大值
min(): 获取元组中最小值
sum ():获取元组中全部元素相加的总和
  • 代码示例

    • 	a=(20,10,30,9,8)
      	# 因为获取出的结果为 int 类型,需要使用类型转换打印输出,使结果更加直观
      	print("获取元组长度:" + str(len(a)))
      	print("获取元组最大元素" + str(max(a)))
      	print("获取元组最小元素:" + str(min(a)))
      	print("计算元组中全部元素的总和:" + str(sum(a)))
      
      • 运行结果:**(1, 20, 30, 20)**


2.4 zip 对象

zip(obj obj):将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
  •  	a = [1,2,3]
     	b = ['a','b','c']
     	c = [1.03,2.65,5.89]
     	
     	d = zip(a,b,c) # 将列表存储进 zip 对象当中
     	e = zip(a,b,c)
     	
     	print(type(d)) # 打印当前对象类型
     	print(tuple(d)) # 将对象存储进元组中,并将对象中的元素迭代入元组当中
     	print(list(e)) # 将对象存储进元组中,并将对象中的元素迭代入列表当中
    
    • 运行结果:
      在这里插入图片描述

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

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

相关文章

5G+北斗高精度定位终端技术,赋能千行百业应用

5G北斗高精度定位终端技术的融合,正以前所未有的精准度和实时性,为千行百业带来革命性的变革。从智慧城市的精细化管理,到智能交通的实时调度,再到精准农业的播种与收割,这一技术正不断拓宽其应用领域,为各…

【Linux】自定义shell(命令行解释器)

原理: shell是命令行解释器,当有命令需要执行时,shell创建子进程,让子进程执行命令,而shell只需等待子进程退出即可。 其中我们使用了下面这几个函数: 获取命令行(fgets函数)。解析…

C++ 66 之 类模版

#include <iostream> #include <string> using namespace std;// 习惯性 < >中 类模板用class 普通的函数模板就用typename // template<class NAMETYPE, class AGETYPE> template<class NAMETYPE, class AGETYPE int> // 可以设置默认的类型值…

Beyond Compare 文件对比工具下载2024最新版-Beyond Compare详细安装步骤

Beyond Compare是一款不可多得的专业级的文件夹和文件对比工具。使用它可以很方便地对比出两个文件夹或者文件的不同之处&#xff0c;相差的每一个字节用颜色加以表示&#xff0c;查看方便&#xff0c;支持多种规则对比。是程序工程师以及上班族必备的有效辅助工具 安 装 包 获…

并发编程理论基础——解决死锁【等待-通知机制优化循环等待】(五)

在破坏占用且等待条件时&#xff0c;如果使用while死循环 在并发量不大的情况下循环几十上百次也就好了如果while中执行方法时间比较长&#xff0c;或者并发量大时&#xff0c;可能要循环上万次才能获取到锁&#xff0c;非常消耗CPU 相较于使用while死循环&#xff0c;更好的方…

位图法-有效的数独

有效的数独&#xff0c;主要是判断每行每列每宫有无重复元素。 每行每列用二重循环&#xff0c;每宫比较复杂&#xff0c;需要考虑每一宫的坐标与二重循环ij对应关系 行i&#xff0c;每一宫3行&#xff0c;3列 x3*(i/3)j/3 y3*(i%3)j%3

超简洁的待办事项自托管便签todo

什么是todo todo 是一个自托管的 todo web 应用程序&#xff0c;可让您以简单且最少的方式跟踪您的 todo。 搭建 使用Docker命令行方式进行搭建 docker run -d -p 8000:8000 -v todo_db:/usr/local/go/src/todo/todo.db prologic/todo Docker-compose.yml version: 3 ​ se…

全球首个开源类Sora模型大升级,16秒720p画质电影感爆棚!代码和权重全面开源!

目录 01 视频界开源战士 02 深度解码技术 03 打破闭环&#xff0c;开源赋能 潞晨Open-Sora团队刚刚在720p高清文生视频质量和生成时长上实现了突破性进展&#xff01; 全新升级的Open-Sora不仅支持无缝生成任意风格的高质量短片&#xff0c;更令人惊喜的是&#xff0c;团队选…

BC153 [NOIP2010]数字统计

数字统计 一.题目描述二.输入描述&#xff1a;三.输出描述&#xff1a;四.数字范围五.题目思路六.代码实现 一.题目描述 请统计某个给定范围[L, R]的所有整数中&#xff0c;数字2出现的次数。 比如给定范围[2, 22]&#xff0c;数字2在数2中出现了1次&#xff0c;在数12中出现1次…

VM4.3 二次开发04 方案输出结果设置

方案输出结果设置&#xff0c;这个设置是为了在二次开发的上位机软件中显示我们想要的数据&#xff0c;和在二开中如何获取这些结果。 打开方案点下如中的图标。 打开如下图。 再点点红色圈出来的图标&#xff0c;打开参数设置界面。 输出设置可以要输出的数据和参数名称。点上…

基于YOLOv10深度学习的高密度人脸智能检测与统计系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Java23种设计模式(二)

1、单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有…

Linux系统之mtr命令的基本使用

Linux系统之mtr命令的基本使用 一、mtr命令介绍二、mtr命令使用帮助2.1 mtr命令的帮助信息2.2 mtr帮助信息解释 三、安装mtr工具四、mtr命令的基本使用4.1 直接使用4.2 设定ping次数4.3 禁用DNS解析4.4 显示IP地址4.5 调整间隔 五、总结 一、mtr命令介绍 mtr命令是一个网络诊断…

Hype4.0 for Mac软件下载-Hype for Mac HTML5 创作工具下载附加详细安装步骤

Hype 4 Pro Mac正式版是款功能实用的动画创作工具。Hype 4 Pro Mac最新版可以帮您轻松创建令人惊叹的动画和交互式网页内容。并且Hype 4 Pro Mac还可被设计师用来创建动画&#xff0c;为网页、信息图形、演示文稿、数字杂志、广告、iBooks、教育内容、应用程序原型、作品集、动…

46. 【Java教程】Optional 类

上一小节&#xff0c;我们接触到了Optional类&#xff0c;但没有详细展开介绍&#xff0c;Optional类也是 Java 8 新加入的类。本小节我们就来学习一下这个类&#xff0c;你将了解到Optional类的解决了什么问题&#xff0c;如何创建Optioanl类的对象&#xff0c;它又有哪些常用…

【MySQL进阶之路 | 高级篇】SQL执行过程

1. 客户端与服务器的连接 运行中的服务器程序与客户端程序本质上都是计算机的一个进程&#xff0c;所以客户端进程向服务器端进程发送请求并得到相应过程的本质就是一个进程间通信的过程. 我们可以使用TCP/IP网络通信协议&#xff0c;命名管道和共享内存等方式&#xff0c;实…

2024/6/18 英语每日一段

While refusing to attribute various problems to specific labs in order to protect the investigators’ sources, the Gladstone AI team told The Washington Times that it found various assessments of security issues were “totally untethered to reality” about…

【STM32】GPIO简介

1.GPIO简介 GPIO是通用输入输出端口的简称&#xff0c;简单来说就是STM32可控制的引脚&#xff0c;STM32芯片的GPIO引脚与外部设备连接起来&#xff0c;从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组&#xff0c;每组有16个引脚。 最基本的输出…

RockChip Android12 System之Datetime

一:概述 本文将针对Android12 Settings二级菜单System中Date&time的UI修改进行说明。 二:Date&Time 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name="Settings$DateTimeSettingsActivity"android:label="@stri…

ubuntu 18.04 安装vnc

如何在Ubuntu 18.04安装VNC | myfreax sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt install tigervnc-standalone-server tigervnc-common vncserver sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt ins…