Python不可变对象元组(tuple)详解

概述

元组和列表很相似,不过元组是不能在原处改变的对象,这点性质和字符串一致,虽然元组不支持任何方法调用,但是元组具有列表的大多数属性,以下是元组的一些特性。

  • 支持索引和切片 既可以通过索引和切片读取元组内的数据
  • 固定长度 由于元组为不可变的序列,所以是不能在生成一个拷贝的情况下进行增删的
  • 任意嵌套 即元组和列表、字典都支持其他的复合对象,比如其他的元组,字典,列表等

常见使用示例

一些基础定义
# 空元组
T = ()

# 简单元组
T = (1, 2, 3, 4)
print(T)

# 嵌套元组
T = (1, (2, 3), 4)
print(T[1][1])

示例结果:

(1, 2, 3, 4)
3
元组转化的简单使用
# 字符串转元组
T = tuple('PYTHON')
print(T)

# 列表转元组
L = list("PYTHON")
T = tuple(L)
print(T)

示例结果:

('P', 'Y', 'T', 'H', 'O', 'N')
('P', 'Y', 'T', 'H', 'O', 'N')
索引和切片
T = (1, 2, 3, 4, 5)
# 索引
print(T[3])
# 切片
print(T[2:4])

示例结果:

4
(3, 4)
简单迭代
for循环迭代元组
T = (1, 2, 3, 4, 5)
for t in T:
    print(t * 10)

示例结果:

10
20
30
40
50
列表推导
T = (1, 2, 3, 4, 5)
L = [x * 10 for x in T]
print(L)

示例结果:

[10, 20, 30, 40, 50]

元组使用要义

当我们在学习元组时,总是会纳闷已经有了列表为什么还需要学习使用元组看似鸡肋的内置对象呢? 我们可以通过元组的不可变性运用在一些场景中,因为其不可变性本身本身就提供了某种完整性,比如使用元组来实现函数的多返回值,作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值