Python入门学习系列(七)之元组常用功能及函数

2023-10-27

        本节我们来学习一下Python中新增的(在C/CPP中未见过的)数据类型元组。

        元组和列表非常相似,唯一特别的点在于元组内部的元素不可修改,这说明不能像列表一样通过索引进行修改,有点像CPP里面类的最最最私有的数据成员(只能读不能改)。

        还有一点是列表采用中括号[]进行定义,而元组采用小括号()

关键1:元组定义

        元组采用小括号()进行定义,小括号内可以空着来创建一个新元组,如下:

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"   #  不需要括号也可以
print(tup1)
print(type(tup3))
#创建空元组
tup0=()

关键2:元组索引

        元组的索引则是和列表一样,同样是通过中括号[]进行索引,如下:

#使用下标索引访问元组
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

#元组索引和截取,与列表基本一致
tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
print(tup[1])
print(tup[-2])
print(tup[1:])
print(tup[1:4])
print(tup[1:-1])
print(tup[-3:-2])
print(tup[:-2])

关键3:元组连接组合

        虽然元组不可以进行修改,但可以进行连接组合,利用+号即可,如下:

#元组不可修改,但可以进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

关键4:元组运算符(+号和*号)

        在输出的时候可以利用+号连接输出和*号重复输出,也可以利用in或者not in,如下:

#元组运算符与列表基本一致   +号和*号
# len((1, 2, 3))	3	计算元素个数
print(len((1,2,3)))
# (1, 2, 3) + (4, 5, 6)	(1, 2, 3, 4, 5, 6)	连接
print((1,2,3)+(4,5,6))
# ('Hi!',) * 4	('Hi!', 'Hi!', 'Hi!', 'Hi!')	复制
print(("Hi!")*4)
# 3 in (1, 2, 3)	True	元素是否存在
print(3 in (1,2,3))
# for x in (1, 2, 3): print (x, end=" ")	1 2 3	迭代
for x in (1,2,3):print(x,end="")

关键5:元组内置函数

        如下注释说明:

#元组内置函数
# 1	len(tuple)
# 计算元组元素个数。	
tuple1 = ('Google', 'Runoob', 'Taobao')
print(len(tuple1))

# 2	max(tuple)
# 返回元组中元素最大值。	
tuple2 = ('5', '4', '8')
print(max(tuple2))

# 3	min(tuple)
# 返回元组中元素最小值。	
tuple2 = ('5', '4', '8')
print(min(tuple2))

# 4	tuple(iterable)
# 将可迭代系列转换为元组。	
list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
tuple1=tuple(list1)
print(tuple1)

注意:关于元组是不可变的

        谓元组的不可变指的是元组所指向的内存中的内容不可变。但如果改变内存空间则是被允许的,如下代码所示:

#关于元组是不可变的
#所谓元组的不可变指的是元组所指向的内存中的内容不可变
#这样是不允许的
tup=(1,2,3);tup[1]=4#改变了元组tup中第二个位置指向的内存的内容
#但这样是允许的,因为改变了内存
t=(1,2,3);print(id(t))
t=(4,5,6);print(id(t))

———————————————————————————————————————————

        基于菜鸟教程:Python3 元组 | 菜鸟教程 的代码如下,可直接运行查看运行结果:

#Python元组
#元组与列表类似 但其元素不能修改
#非常像C语言中的私有成员数组
#列表使用[],而元组使用()

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"   #  不需要括号也可以
print(tup1)
print(type(tup3))
#创建空元组
tup0=()

#元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用
tup1=(50)
print(type(tup1))#视作整型
tup1=(50,)
print(type(tup1))

#使用下标索引访问元组
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

#元组不可修改,但可以进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

#元组运算符与列表基本一致   +号和*号
# len((1, 2, 3))	3	计算元素个数
print(len((1,2,3)))
# (1, 2, 3) + (4, 5, 6)	(1, 2, 3, 4, 5, 6)	连接
print((1,2,3)+(4,5,6))
# ('Hi!',) * 4	('Hi!', 'Hi!', 'Hi!', 'Hi!')	复制
print(("Hi!")*4)
# 3 in (1, 2, 3)	True	元素是否存在
print(3 in (1,2,3))
# for x in (1, 2, 3): print (x, end=" ")	1 2 3	迭代
for x in (1,2,3):print(x,end="")

#元组索引和截取,与列表基本一致
tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
print(tup[1])
print(tup[-2])
print(tup[1:])
print(tup[1:4])
print(tup[1:-1])
print(tup[-3:-2])
print(tup[:-2])

#元组内置函数
# 1	len(tuple)
# 计算元组元素个数。	
tuple1 = ('Google', 'Runoob', 'Taobao')
print(len(tuple1))

# 2	max(tuple)
# 返回元组中元素最大值。	
tuple2 = ('5', '4', '8')
print(max(tuple2))

# 3	min(tuple)
# 返回元组中元素最小值。	
tuple2 = ('5', '4', '8')
print(min(tuple2))

# 4	tuple(iterable)
# 将可迭代系列转换为元组。	
list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
tuple1=tuple(list1)
print(tuple1)

#关于元组是不可变的
#所谓元组的不可变指的是元组所指向的内存中的内容不可变
#这样是不允许的
tup=(1,2,3);tup[1]=4#改变了元组tup中第二个位置指向的内存的内容
#但这样是允许的,因为改变了内存
t=(1,2,3);print(id(t))
t=(4,5,6);print(id(t))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python入门学习系列(七)之元组常用功能及函数 的相关文章

随机推荐

  • 建立时间裕量和保持时间裕量

    前面的博客里面有讲解建立时间Tsetup和保持时间Tholdon的概念以及要满足的和时钟之间的关系 这里不再重复 在了解建立时间裕量和保持时间裕量之前我们先来了解一下触发沿Launch Edges 和锁存沿Latch Edges 一般认为L
  • Redis(四)Redis集群搭建

    Redis集群搭建 pwd命令主要用于打印当前工作目录的工作路径 Keepalived Redis服务器的高可用除了用集群和哨兵模式外 还可以用keepalived Keepalived的作用是检测服务器的状态 如果有一台web服务器宕机
  • shader学习过程3——shader编程语言

    shader language最初是由汇编语言编写 难度高 入门难 现在由三种高级语言可以编写 一 HLSL 基于DirectX的High Level Shading Language 简称HLSL DirectX简称DX 微软的产品 优点
  • stm32--USB(作为U盘)+FatFs的实现

    一 USB功能的添加 作为U盘 添加文件 将官方库中的Library文件夹中的所有有效文件添加到工程中 分为4个文件夹 usb class为硬件相关 Library Class usb driver为底层驱动 Driver usb libr
  • 如何制作多系统启动U盘

    Ventoy简介 简单来说 Ventoy是一个制作可启动U盘的开源工具 并且它有诸多优势 有了Ventoy你就无需反复地格式化U盘 你只需要把 ISO WIM IMG VHD x EFI 等类型的文件直接拷贝到U盘里面就可以启动了 无需其他
  • openssl: error while loading shared libraries: libssl.so.1.1

    在执行openssl version出现如下错误 openssl error while loading shared libraries libssl so 1 1 cannot open shared object file No su
  • HyperLPR车牌识别相关资源整理

    一 HyperLPR使用 源码分析相关资料 1 HyperLPR中文车牌识别 中给出了视频文件的处理方法 可以参考下 因为识别检测本身比较耗时 所以从画面上看 视频文件播放非常慢 这里需要根据上层应用根据自己的需要进行丢帧处理 PlateR
  • 16-Ansible常用模块-service模块

    一 概述 service 模块可以帮助我们管理远程主机上的服务 比如 启动或停止远程主机中的 nginx 服务 注意 假如想要管理远程主机中的某个服务 那么这个服务必须能被 BSD init OpenRC SysV Solaris SMF
  • 机器人教育的魅力是什么

    机器人教育指通过设计 组装 编程 运行机器人 激发学生学习兴趣 培养学生综合能力 它融合了机械原理 电子传感器 计算机软硬件及人工智能等众多先进技术 对学生能力 素质的培养有着巨大的作用 与传统的编程教育不同 机器人教育往往通过形象生动的图
  • 计算机视觉论文-2021-07-14

    本专栏是计算机视觉方向论文收集积累 时间 2021年7月14日 来源 paper digest 欢迎关注原创公众号 计算机视觉联盟 回复 西瓜书手推笔记 可获取我的机器学习纯手推笔记 直达笔记地址 机器学习手推笔记 GitHub地址 1 T
  • QT——键盘事件(捕获按键事件)

    文章目录 qt增加按键事件处理响应 qt增加按键事件处理响应 在使用qt时 当需要处理按键触发的键盘事件的时候 需要用到事件触发响应 查阅文档 QT已经实现了这一系列的键盘事件 void QWidget keyPressEvent QKey
  • 基于python的人脸识别系统设计与实现

    案例分享之基于python的人脸识别系统设计与实现 人脸识别即程序对输入的图像进行判别是否有人脸 并识别出有人脸的图像所对应的人 即我们常说的人脸识别一般包含了人脸检测和人脸识别两部分 下面对其在opencv中的相应模块进行分别介绍 在op
  • Spark kryo Jar包冲突问题排查

    错误日志 Exception in thread adaptive query stage 0 java lang NoSuchMethodError com esotericsoftware kryo Kryo setInstantiat
  • 3GPP简介及标准查找指南

    3GPP是积极倡导UMTS为主的第三代标准化组织 成立于1998年12月 是一个协作协议 3GPP最初的工作范围是第三代移动系统指定全球使用的技术规范与技术报告 第三代移动系统是基于发展的GSM核心网络和它们所支持的无线接入技术 随后3GP
  • mysql:列类型之enum、set

    环境 window10 vs2022 net 6 mysql 8 0 25 DBeaver 参考 mysql 11 3 5 The ENUM Type 注意 在mysql中定义enum和set应该使用英文字母 本文使用汉字是为了方便阅读 1
  • UE4 控件蓝图与蓝图的交互

    我现在想实现的是点击场景中的一个蓝图中的某个静态网格体 然后在控件蓝图中的文本控件中就能显示这个被点击的静态网格体的名称 效果 步骤 首先我在控件蓝图中对其中的一个文本控件创建了一个绑定函数 绑定函数的逻辑如下 整车 内部无系统 是我添加的
  • Linux下多线程网络通讯--多线程网络通讯

    Linux下多线程网络通讯 多线程网络通讯 要多个线程 核心知识点 思考范围 源代码 服务器端 客户端 核心知识点 主线程和子线程 子线程的剥离 主线程使用范围 子线程使用范围 主线程的数据传到子线中 思考范围 思考范围 多线程网络通讯 g
  • 编写多线程应用程序,模拟多个人通过一个山洞

    17 编写多线程应用程序 模拟多个人通过一个山洞 山洞每次只能通过一个人 每个人通过山洞的时间为5秒 随机生成10个人 同时准备过此洞 显示每次通过者的姓名 public class Test public static void main
  • 专利与论文-3:专利的三大原则是什么?不能申请专利的几种情形?

    不管是何种类型的专利 要能成为专利必须满足如下的三大原则和不能申请专利的几种情形 1 专利的三大原则 1 1 新颖性 新颖性 是指该发明或者实用新型不属于现有技术 也没有任何单位或者个人就同样的发明或者实用新型在申请日以前向国务院专利行政部
  • Python入门学习系列(七)之元组常用功能及函数

    本节我们来学习一下Python中新增的 在C CPP中未见过的 数据类型元组 元组和列表非常相似 唯一特别的点在于元组内部的元素不可修改 这说明不能像列表一样通过索引进行修改 有点像CPP里面类的最最最私有的数据成员 只能读不能改 还有一点