当前位置: 首页 > news >正文

【Python系列】Python 元组(Tuple)详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 1.引言
    • 2.元组的定义与创建
    • 3.元组的特点
    • 4.元组的操作
    • 5.元组与列表的转换
    • 6.元组的应用场景
    • 7.元组与列表的性能比较
    • 8.元组的高级用法
    • 9.低级 BUG

1.引言

在 Python 中,元组(Tuple)是一种非常基础且常用的数据结构,它与列表(List)类似,但元组是不可变的。这意味着一旦元组被创建,就不能对其进行修改,比如添加、删除或更改元素。这种不可变性使得元组在某些情况下比列表更加安全和高效。
在这里插入图片描述

2.元组的定义与创建

元组可以通过圆括号()来定义,也可以省略括号直接使用逗号,。下面展示了两种创建元组的方法:

# 使用圆括号创建元组
tup1 = (1, 2, 3)# 省略圆括号直接使用逗号创建单元素元组
tup2 = 4,

3.元组的特点

  1. 不可变性:一旦创建,元组中的元素就不能被修改。
  2. 索引:元组支持索引,可以通过索引访问元组中的元素。
  3. 切片:元组支持切片操作,可以获取元组的一部分。
  4. 可迭代:元组是可迭代的,可以用于for循环中。
  5. 散列性:由于元组是不可变的,它们是可哈希的,可以作为字典的键。

4.元组的操作

虽然元组不可变,但 Python 提供了一些内置的方法来操作元组:

  • len(tup):获取元组的长度。
  • tup[index]:获取元组中指定索引的元素。
  • tup[start:end]:获取元组中的一部分,即切片操作。

5.元组与列表的转换

元组和列表之间可以相互转换:

  • 使用list()函数可以将元组转换为列表。
  • 使用tuple()函数可以将列表转换为元组。
# 将元组转换为列表
list1 = list(tup1)# 将列表转换为元组
tup3 = tuple(list1)

6.元组的应用场景

由于元组的不可变性,它通常用于以下场景:

  1. 函数返回多个值:Python 函数可以返回元组,这样就可以一次返回多个值。
  2. 作为字典的键:由于元组是不可变的,它可以用作字典的键。
  3. 存储配置数据:当需要存储一些不应改变的数据时,使用元组可以保证数据的安全性。

7.元组与列表的性能比较

在某些情况下,元组的性能要优于列表,尤其是在创建大量数据时。由于元组是不可变的,Python 解释器可以对元组进行一些优化,比如:

  • 元组的内存分配是一次性的,而列表在添加元素时可能需要多次内存分配。
  • 元组的哈希值在创建时就计算并存储,而列表则需要在需要时计算。

8.元组的高级用法

虽然元组看起来简单,但它也有一些高级用法,比如:

  • 嵌套元组:元组中可以包含其他元组,形成嵌套结构。
  • 多返回值:函数可以返回一个包含多个元素的元组。
  • 解包:Python 支持元组的解包,可以将元组中的元素直接赋值给多个变量。
# 函数返回多个值
def get_user_info():return ("Alice", 30, "Engineer")# 使用解包获取返回值
name, age, job = get_user_info()

在这里插入图片描述

9.低级 BUG

在开发过程中,不要随意在结尾写逗号,不然会出现莫名其妙的 bug

t = 1,
s = 1print(type(t))
print(type(s))

<class ‘tuple’>
<class ‘int’>

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

http://www.lryc.cn/news/359514.html

相关文章:

  • 特征融合篇 | YOLOv8 引入动态上采样模块 | 超过了其他上采样器
  • ​​​​​​​Beyond Compare 3密钥被撤销的解决办法
  • 知识见闻 - 人和动物的主要区别
  • Javaweb基础之工程路径
  • 国际荐酒师(香港)协会受邀出席广州意大利国庆晚宴
  • 让驰骋BPM系统插上AI的翅膀
  • 排队论 | 基于排队机制实现智能仓储机器人巡逻及避碰
  • Node.js和npm常用命令
  • pytest +allure在测试中的应用
  • 004 CentOS 7.9 mongodb7.0.11安装及配置
  • Docker安装Redis(云服务器)
  • springboot中抽象类无法注入到ioc容器
  • Java关键字大冒险:深入浅出地理解Java的精髓
  • Android Kotlin 打开相册选择图片(多选)
  • java学习路径
  • [线程与网络] 网络编程与通信原理(四):深入理解传输层UDP与TCP协议
  • IEEE编程语言排行榜:深度解析编程语言的四大维度、五大趋势、六大热门与七大挑战
  • 【C++面试50题】
  • 外汇天眼:ESMA发布针对在投资服务中使用人工智能的公司的指导意见
  • 【前缀和 记忆化搜索】LeetCode1444. 切披萨的方案数
  • 异常处理1--5.31
  • AI免费插件 批量条码大师,支持100多种条码类型
  • 使用 Django 连接 MySQL 数据库
  • 【谷歌开发者月刊】五月内容汇总,Google I/O 点燃您的创新灵感
  • wpf 实现长时间未操作自动退出登录
  • pytorch学习笔记3
  • 开源监控工具monit安装部署
  • Python 时间戳转时间
  • 【网络层】IP地址基础 与 子网掩码
  • Cholesky分解(A=L * L^T)