Python基础——元组怎么玩

本文记录了一些本人想记录的学习要点

1.元组

(元素1, 元素2, …, 元素n)

创建元组时,是使用小括号(与列表的创建区别开),元素为任意类型的数据

x = (1, 10.31, 'python'), ('data', 11)
print(x)
# ((1, 10.31, 'python'), ('data', 11))
print(x[0])
# (1, 10.31, 'python')
print(x[0][0], x[0][1], x[0][2])
# 1 10.31 python

2.元组的更新

元组是不可变数据类型,不可变数据类型的定义如下:

不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。

可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。

所以当元组创建的时候才可以给它赋值,否则在创建好元组后再赋值会出现报错的情况。但是还有一种情况,当元素是可变数据类型时,可对元素的值进行更改。
原则便是元组在创建时就分配好元素所需的地址,后续不可更改,以地址是否变换来作更新标准

情况1: 赋值会造成地址的改变,所以报错

t1 = (1, 2, 3, [4, 5, 6])
print(t1)  # (1, 2, 3, [4, 5, 6])
t1[2] = 8 #报错——TypeError: 'tuple' object does not support item assignment
print(t1)  # (1, 2, 3, [9, 5, 6])

情况2:元素是可变数据类型时,未改变其地址,可对元素里的内容进行更改。但不能对其空间作更改如扩大或压缩,这里对应的是扩大或压缩列表中元素的个数

t1 = (1, 2, 3, [4, 5, 6])
print(t1)  # (1, 2, 3, [4, 5, 6])#列表可变数据类型
t1[3][0] = 9  
print(t1)  # (1, 2, 3, [9, 5, 6])

3.解压元组

解压,我对它的理解——解除扣押(解锁),给自由。因为元组是不可变数据类型,通过解压,对它的元素内容对一个释放(转移)

解压时需讲究一一对应

t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t  #或者 a, b, (c, d) = t  
print(a, b, c, d)
# 1 10.31 OK python

3.1 解压中的不屑一顾——用通配符「*」

情况1:将某些元素解压到指定的元素——*元素名

t = 1, 2, 3, 4, 5
a, b, *drip, c = t
a, b, *throw, c = t
print(a, b, c)  # 1 2 5
print(drip)  # [3, 4]
print(throw)  # [3, 4]

情况2:直接忽略某些元素——*_

t = 1, 2, 3, 4, 5
a, b, *_ = t  #后续的3,4,5被忽略,没有解压
print(a, b)  # 1 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值