Python基础数据类型tuple元组的概念与用法


Posted in Python onAugust 02, 2021

元组简单介绍

元组是一个和列表和相似的数据类型,也是一个有序序列

两者拥有着基本相同的特性,但是也有很多不同的地方 

声明元组

var = (1, 2, 3)
var = ("1", "2", "3")
var = (True, False)
var = (1.1, 1.11, 1.111)
var = ((1,), (2, 3), (4, 5))
var = ([1, 2], {"name": "polo"})

元组与列表的区别

元组与列表很相似,都是有序的只读序列,两者有相同的方法和操作运算,区别在于:

列表创建后,可以进行修改

元组创建后,不能进行修改

lis = [1, 2, 3]
lis[0] = 111
print(lis)

tupl = (1, 2, 3)
tupl[0] = 2


# 输出结果
Traceback (most recent call last):
  File "/Users/polo/Documents/pylearn/第一章:python 基本类型/6_tuple元组.py", line 21, in <module>
    tupl[0] = 2
TypeError: 'tuple' object does not support item assignment

究极原因在于

列表是可变对象,而元组是不可变对象,具体详解可以参考

https://3water.com/article/0MTM3aNjkwfLmE2

特殊的元组

如果一个元组没有包含任何元素,使用 () 表示一个空元组

# 空
tup = ()
print(tup, type(tup))


# 输出结果
() <class 'tuple'>

如果一个元组只包含一个元素,要怎么表示?

# 只包含一个元素
tup = (1)
print(tup, type(tup))


# 输出结果
1 <class 'int'>

哎!竟然是 1,好像是哦,( ) 就是数学运算常见的括号呀,那到底要怎么表示呢

正确表示元组只包含一个元素

# 正确
tup = (1,)
print(tup, type(tup))


# 输出结果
(1,) <class 'tuple'>

需要在元素后加一个逗号,使用 (item, ) 表示该元组

总结

(123, ) 表示的是一个元组,元组中包含一个整数 123

(123) 表示的是一个带括号的表达式,整数 123 嵌入括号中 

元组的简写

当元组在 = 右边的时候,可以省略括号

# 等价写法
a = 1, 2
print(a, type(a))
a = (3, 4)
print(a, type(a))

a = 1,
print(a, type(a))
a = (3,)
print(a, type(a))


# 输出结果
(1, 2) <class 'tuple'>
(3, 4) <class 'tuple'>
(1,) <class 'tuple'>
(3,) <class 'tuple'>

元组常见运算操作

索引 [ ] 取值

# 索引
tup = [1, 2, 3, 4, 5]
print(tup[0])
print(tup[-1])
print(tup[2])


# 输出结果
1
5
3

切片 [ : : ] 取值

和列表一样,元组也可以切片

使用语法:元组[start : end : step],获取元组中在 [start, end) 范围的子元组

注意范围 [start, end) 包含 start,不包含 end

step 是步长,设为 n,则每隔 n 个元素获取一次

# 切片
tup = [1, 2, 3, 4, 5, 6, 7, 8]
print(tup[:])  # 取全部元素
print(tup[0:])  # 取全部元素
print(tup[2:5])  # 取第 3 个元素到第 5 个元素
print(tup[::-1])  # 倒序取所有元素
print(tup[-3:-1])  # 取倒数第 3 个元素到倒数第 2 个元素


# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[3, 4, 5]
[8, 7, 6, 5, 4, 3, 2, 1]
[6, 7]

运算符 +

使用运算符 + 连接多个元组

# +
tup1 = (1,)
tup2 = (2, 3)
print(tup1 + tup2)


# 输出结果
(1, 2, 3)

运算符 *

使用运算符 * 将元组的元素重复

# *
tup = (1, 2)
print(tup * 2)


# 输出结果
(1, 2, 1, 2)

关键字 in

通过关键字 in 检查列表中是否包含指定元素,返回 bool 值

not in 则是取反

# in
tup = (1, 2, 3)
print(1 in tup)
print(22 not in tup)


# 输出结果
True
True

常见函数

len(元组) 函数

# len
tup = (1, 2, 3)
print(len(tup))


# 输出结果
3

max(元组) 函数

# max
tup = (1, 2, 3)
print(max(tup))


# 输出结果
3

min(元组) 函数

# min
tup = (1, 2, 3)
print(min(tup))


# 输出结果
1

元组常见方法

元组与列表很相似,两者都表示一个有序的序列,它们的区别在于:

  • 列表创建后,可以进行修改
  • 元组创建后,不能进行修改

这点在可变对象、不可变对象文章都写了

index(item)

在元组中查找指定元素 item

如果找到元素 item,则返回元素 item 的索引

如果找不到,则抛出异常

# index
tup = (1, 2, 3)
print(tup.index(1))
print(tup.index(11))


# 输出结果
0
Traceback (most recent call last):
  File "/Users/Documents/pylearn/第一章:python 基本类型/6_tuple元组.py", line 88, in <module>
    print(tup.index(11))
ValueError: tuple.index(x): x not in tuple

count(value)

返回元素 value 在元组中出现的次数

# count
tup = (1, 2, 1)
print(tup.count(1))
print(tup.count(11))


# 输出结果
2
0

元组总结

因为元组是不可变对象,所以元组一般适合用来存储不变的数据

到此这篇关于Python基础数据类型tuple元组的概念与用法的文章就介绍到这了,更多相关Python数据类型tuple元组内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 简易计算器程序,代码就几行
Aug 29 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
pandas的object对象转时间对象的方法
Apr 11 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
Python装饰器用法实例分析
Jan 14 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
Python requests模块cookie实例解析
Apr 14 Python
如何学习Python time模块
Jun 03 Python
python如何使用代码运行助手
Jul 03 Python
Python基于Webhook实现github自动化部署
Nov 28 Python
opencv用VS2013调试时用Image Watch插件查看图片
基于python定位棋子位置及识别棋子颜色
Python 处理表格进行成绩排序的操作代码
python识别围棋定位棋盘位置
python之基数排序的实现
Jul 26 #Python
python之PySide2安装使用及QT Designer UI设计案例教程
python代码实现备忘录案例讲解
Jul 26 #Python
You might like
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
python中正则表达式与模式匹配
2019/05/07 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
联谊会主持词
2014/03/26 职场文书
捐书倡议书
2014/08/29 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
海上钢琴师观后感
2015/06/03 职场文书
小学毕业感言100字
2015/07/30 职场文书
新学期开学寄语2016
2015/12/04 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
创业计划书之酒厂
2019/10/14 职场文书