数据类型-元祖

元祖 是 python 不可变数据类型之一, 元祖由一对()包裹,括号类元素用逗号分隔,元素可以是不同的数据类型,空元祖 可以直接使用一对()号定义,如果元祖只有一个元素,则在元素后面必须加上逗号 例如 ('a',)。

1. 特点

元祖是不可变数据类型

元素是有序的序列

元祖也支持索引和切片

相对于列表占用的空间更小

示例

# 多个数据元组

t1 = (10, 20, 30)

# 单个数据元组

t2 = (10,)

# 空元祖

t3 = ()

# 特殊定义

t4 = 1,2,3,4

print(type(t4))

#

如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则为直接当成()运算符使用

t2 = (10,)

print(type(t2)) # tuple

t3 = (20)

print(type(t3)) # int

t4 = ('hello')

print(type(t4)) # str

元祖的常见操作

按下标查找数据

tuple1 = ('aa', 'bb', 'cc', 'bb')

print(tuple1[0]) # aa

index(): 查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。

tuple1 = ('aa', 'bb', 'cc', 'bb')

print(tuple1.index('aa')) # 0

count(): 统计某个数据在当前元组出现的次数

tuple1 = ('aa', 'bb', 'cc', 'bb')

print(tuple1.count('bb')) # 2

len(): 统计元组中数据的个数。

tuple1 = ('aa', 'bb', 'cc', 'bb')

print(len(tuple1)) # 4

元组内的直接数据如果修改则立即报错

tuple1 = ('aa', 'bb', 'cc', 'bb')

tuple1[0] = 'aaa'

TypeError: 'tuple' object does not support item assignment

如果元组里面有列表,修改列表里面的数据则是支持的,故自觉很重要

tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)

print(tuple2[2])

# 结果: ['aa', 'bb', 'cc']

tuple2[2][0] = 'aaaaa'

print(tuple2)

# 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)

3. namedtuple()

namedtuple 是 python 的内置模块 collections提供的创建命名元组子类的工厂函数,可以使用名称来访问元素的数据对象

from collections import namedtuple

BookTuple = namedtuple("Book", ['name', 'price', 'author'])

book = BookTuple('红楼梦', 23, '曹雪芹')

print(book.name, book.price, book.author)

# 结果: 红楼梦 23 曹雪芹

books = [

('百年孤独', 30, '加西亚.马尔克斯'),

('树上的男爵', 35, '伊塔洛·卡尔维诺'),

('那不勒斯四部曲', 76, '埃莱娜·费兰特')

]

BookTuple = namedtuple("Book", ['name', 'price', 'author'])

for book in books:

book = BookTuple._make(book)

print(book.name, book.price, book.author)

"""

百年孤独 30 加西亚.马尔克斯

树上的男爵 35 伊塔洛·卡尔维诺

那不勒斯四部曲 76 埃莱娜·费兰特

"""

元祖python_Python-数据类型-元祖相关推荐

  1. python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...

    python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...

  2. 潭州教育-Python学习笔记@基本数据类型:元祖字典

    Python基本数据还有元祖和字典 元祖(tuple)是Python的基本数据类型,用()表示,元素之间用','隔开,元祖一旦创建,就不能改变 In [45]: s = ('Stone','Stone ...

  3. Python数据类型——元祖

    元祖和列表类似,都能表示大量数据的集合.元祖和列表最大的不同就是元祖是不允许修改和新增元素.元祖使用()表示,列表使用[]表示.接下来将详细讲解元祖. 1.定义元祖: 元祖的定义很简单,只需要在()中 ...

  4. 元祖python_Python ---元祖

    元祖(tuple) ·括号运算符:'()' 作用: 1.控制运算优先级(优先级最高)1+2*3 (1+2)*31+2**3 (1+2)**31 (1)表示1 一个数字加圆括号值与类型都不变 2.作为元 ...

  5. 元祖字典 java_元祖和字典

    元祖的定义 Tuple 元祖与列表类似,不同之处在于元祖中 元素不能修改 元祖表示多个元素的序列 元祖在python中,有特定的应用场景 元祖用于存储 一串信息,数据之间用逗号分隔 元祖用 ( ) 定 ...

  6. 最新联想bios logo图_软路由神器 联想M720Q=250元,M920Q=350元 8代mini主机大跳水?...

    前言 继上一台1L迷你小主机评测( 全网首发 HP ProDesk 400 G5 Desktop Mini 九代1L小主机拆解评测 )小半个月了,HP这台机器比较均衡,但是总感觉缺点什么,直到我在咸鱼 ...

  7. 用100元买100支笔c语言,用C编程!有100块钱,买100支笔,其中钢笔3元,圆珠笔2元,铅笔0.5元,问各买多少支?...

    题目: 用C编程!有100块钱,买100支笔,其中钢笔3元,圆珠笔2元,铅笔0.5元,问各买多少支? 解答: 完整程序如下: main(){ int i3,i2,i05; for (i3=0;i3 猜 ...

  8. 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )

    文章目录 一.编译时元编程引入 二.声明需要编译时处理的类 三.分析 Groovy 类的 AST 语法树 一.编译时元编程引入 在之前的 " [Groovy]MOP 元对象协议与元编程 &q ...

  9. 【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 批量方法委托 )

    文章目录 一.批量方法委托 二.完整代码示例 一.批量方法委托 在上一篇博客 [Groovy]MOP 元对象协议与元编程 ( 方法委托 | 正常方法调用 | 方法委托实现 | 代码示例 ) 中 , 将 ...

  10. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 @Mixin 注解进行方法注入 | Mixin 混合多个类优先级分析 )

    文章目录 一.使用 Mixin 混合进行方法注入 二.Mixin 混合多个类优先级分析 一.使用 Mixin 混合进行方法注入 在上一篇博客 [Groovy]MOP 元对象协议与元编程 ( 方法注入 ...

最新文章

  1. 图像配准的前世今生:从人工设计特征到深度学习
  2. C++内存对象大会战
  3. 阿里云产品搭建web应用梳理
  4. nginx优化及配置
  5. Java中常见的十八种异常!
  6. C语言实现lu分解lu decompose算法(附完整源码)
  7. MATLAB各类函数详细讲解 simulike系统仿真分析
  8. oracle 解死锁权限,讲解Oracle数据库中结束死锁进程的一般方法
  9. 三星旗舰Galaxy Note 10系列发布 5G版本国行尝鲜价8299元
  10. java blueprint_blueprint(蓝本/蓝图)学习笔记
  11. 函数指针的定义和函数指针数组
  12. mouseover与mouseenter、 mouseout与mouseleave的区别
  13. 无法启动此程序 因为计算机中丢失 msvcp71.dll,msvcp71.dll丢失怎样修复?计算机中丢失msvcp71.dll文件的解决方法...
  14. terminal mysql_MySQL的终端(Terminal)管理数据库、数据表、数据基本操作
  15. SGD: Maximum margin separating hyperplane程序解析
  16. 慧鱼机器人编程18子程序
  17. 解决Logitech G HUB卡在一直在加载问题解决方法
  18. 从钉钉后台对接考勤打卡信息(仅供参考)
  19. 今年最新任务平台红利系统/悬赏威客积分墙系统接单小程序APP的优势在哪?
  20. LaTex | LaTex的数学公式中插入中文

热门文章

  1. Greenplum集群部署安装指南
  2. [算法设计题] 双栈结构
  3. PCL实现Alpha Shapes算法
  4. PHP:使用静态变量
  5. elasticsearch安装和使用
  6. 创建DAO模式的步骤
  7. 【计算机原理与接口技术(UNIX)⑲ 完结篇】——可编程计数器 8254 [ 流光发生器、8254工作方式检测程序的设计]
  8. bu yong di san fang jiao huan liang ge shu zi
  9. VC++ 文件读写总结
  10. 我爱Java系列---【分页查询】