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改变日志(logging)存放位置的示例
Mar 27 Python
初步讲解Python中的元组概念
May 21 Python
windows系统下Python环境搭建教程
Mar 28 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
python实现批量修改文件名代码
Sep 10 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
matplotlib绘制动画代码示例
Jan 02 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
python deque模块简单使用代码实例
Mar 12 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
opencv用VS2013调试时用Image Watch插件查看图片
基于python定位棋子位置及识别棋子颜色
Python 处理表格进行成绩排序的操作代码
python识别围棋定位棋盘位置
python之基数排序的实现
Jul 26 #Python
python之PySide2安装使用及QT Designer UI设计案例教程
python代码实现备忘录案例讲解
Jul 26 #Python
You might like
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP5 安装方法
2007/01/15 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
python线程锁(thread)学习示例
2013/12/04 Python
Python中类型检查的详细介绍
2017/02/13 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
财务管理专业求职信
2014/06/11 职场文书
作弊检讨书
2015/01/27 职场文书
交通事故被告代理词
2015/05/23 职场文书
调解协议书范本
2016/03/21 职场文书
Python图像处理之图像拼接
2021/04/28 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL