热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小白学Python(11):基础数据结构(元组)

人生苦短,我选Python前文传送门小白学Python(1):开篇小白学Python(2):基础数据类型(上)小白学Python(3):基础数据类型(下)小白学Python(4):


人生苦短,我选Python


前文传送门

小白学 Python(1):开篇

小白学 Python(2):基础数据类型(上)

小白学 Python(3):基础数据类型(下)

小白学 Python(4):变量基础操作

小白学 Python(5):基础运算符(上)

小白学 Python(6):基础运算符(下)

小白学 Python(7):基础流程控制(上)

小白学 Python(8):基础流程控制(下)

小白学 Python(9):基础数据结构(列表)(上)

小白学 Python(10):基础数据结构(列表)(下)


元组(tuple)

在 Python 中,元组和列表是非常类似的一种数据结构,如果前面有好好看过有关列表的文章的话,只需要抓住一些核心点,可能这篇文章会显得有些多余。

先简单介绍一下元组和列表的区别:



  • 元组的元素不能修改

  • 元组使用小括号,列表使用方括号


创建元组

用逗号隔开的就是元组,但是为了美观和代码可读性,一般加小括号。

tuple1 = "Python", "Java", 2011, 2015
print(tuple1)
tuple2 = ("Python", "Java", 2011, 2015)
print(tuple2)
print(type(tuple2))

执行结果如下:

('Python', 'Java', 2011, 2015)
('Python', 'Java', 2011, 2015)

在创建元组的时候可以包含列表,如下:

tuple3 = ("Python", "Java", [1 ,2, 'python', 'java'], 2011, 2015)
print(tuple3)

执行结果:

('Python', 'Java', [1, 2, 'python', 'java'], 2011, 2015)

元组的基本操作

元组的基本操作和列表非常的类似,包括:



  • 索引

  • 切片

  • 连接

  • 复制

  • 对内部元素循环

  • 查找元组中是否有某元素

  • 删除元组

  • 返回元组中最大值和最小值

  • 获取元组长度

这么多操作,我就不分开展示了,直接贴一段代码,具体含义已经加在注释中:

tuple4 = (0 ,1, 2, 3, 4, 5, 6, 7, 8, 9)
print(tuple4)
# 索引
print(tuple4[2])
# 索引
print(tuple4[-2])
# 切片
print(tuple4[0:8:2])
# 切片
print(tuple4[8:1:-1])
tuple5 = (2333, '98k')
# 连接
print(tuple4 + tuple5)
# 循环
for index in tuple4:
print(index)
# 查找元素是否存在
print(1 in tuple4)
print(11 in tuple4)
# 删除元组
# del tuple5
# print(tuple5)
# 取最大
print(max(tuple4))
# 取最小
print(min(tuple4))
# 元组长度
print(len(tuple4))
# 修改元组
# tuple4[0] = 11

执行结果:

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
2
8
(0, 2, 4, 6)
(8, 7, 6, 5, 4, 3, 2)
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2333, '98k')
0
1
2
3
4
5
6
7
8
9
True
False
9
0
10

最后一个修改元组会报错,所以我先注释掉了,感兴趣的同学可以把注释去掉看下具体报错内容。


元组与列表间的互相转化

# 相互转化
print(type(tuple4))
print(list(tuple4))
print(type(list(tuple4)))
list1 = [0 ,1, 2, 3, 4, 5, 6, 7, 8, 9]
print(type(list1))
print(tuple(list1))
print(type(tuple(list1)))

结果如下:


[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)


  • 在列表外套一层 tuple() 就可以转为元组

  • 在元组外套一层 list() 就可以转为列表


元组解包

# 元组解包
tuple6 = (1, 2, 3)
print(tuple6)
a, b, c = tuple6
print(a, b, c)

结果如下:

(1, 2, 3)
1 2 3

希望各位同学在学习的过程中可以亲自动手实践一下示例代码,毕竟自己不敲代码是永远学不会代码的:)


示例代码

本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

示例代码-Github

示例代码-Gitee

 


本文链接:小白学 Python(11):基础数据结构(元组)
转载声明:本博客由极客挖掘机创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。

推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
author-avatar
自行脑补
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有