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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
python中字典(Dictionary)用法实例详解
May 30 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
Python面向对象编程基础解析(二)
Oct 26 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
python集合的新增元素方法整理
Dec 07 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 25 Python
opencv用VS2013调试时用Image Watch插件查看图片
基于python定位棋子位置及识别棋子颜色
Python 处理表格进行成绩排序的操作代码
python识别围棋定位棋盘位置
python之基数排序的实现
Jul 26 #Python
python之PySide2安装使用及QT Designer UI设计案例教程
python代码实现备忘录案例讲解
Jul 26 #Python
You might like
PHP ajax 分页类代码
2008/11/13 PHP
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
php生成随机颜色的方法
2014/11/13 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
学习ExtJS form布局
2009/10/08 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
Python md5与sha1加密算法用法分析
2017/07/14 Python
python使用递归的方式建立二叉树
2019/07/03 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
如何强制垃圾回收
2015/10/06 面试题
成品仓管员岗位职责
2013/12/11 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
外联部演讲稿
2014/05/24 职场文书
医院保洁服务方案
2014/06/11 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
求职导师推荐信范文
2015/03/27 职场文书
nginx优化的六点方法
2021/03/31 Servers
数据库之SQL技巧整理案例
2021/07/07 SQL Server
Redis性能监控的实现
2021/07/09 Redis