Python标准数据类型(二) 元组

元组是Python中不可变的标准类型之一

既然谈到不可变,那何为不可变呢?
拿int和list在id上的区别做比较:

# int
>>> i = 4
>>> id(i)
1636290384
>>> i += 1
>>> id(i)
1636290416

可以看出当i的值发生改变时,id也发生了改变

# list
>>> a = [1,2,3]
>>> id(a)
1686339190984
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> id(a)
1686339190984

可见,虽然a发生了改变,但在append之后,还是指向同个内存地址,因为list是可变类型,可以在原处修改。

元组作为与字符串一样的不可变类型,具有同样的属性

>>> a = (1,2)
>>> a[0] = 2
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    a[0] = 2
TypeError: 'tuple' object does not support item assignment

当直接改变元组的值时,会发生报错。

回到正题,通过help(tuple)dir(tuple),发现tuple类型的函数还不算很多。

创建

在创建元组时,一定要记住一句话:
元组()不是必须的,但是,是必须要有的

>>> a = (1,2,3)
>>> type(a)
<class 'tuple'>
>>> a = 1,
>>> type(a)
<class 'tuple'>
# 空元组的创建
>>> c = tuple()
>>> c
()

记数(count)

语法:
T.count(value)

>>> tup1 = (1,2,4,2,2,3)
>>> tup1.count(2)
3

索引(index)

语法:
T.index(value, [start, [stop]])

>>> tup1
(1, 2, 4, 2, 2, 3)
>>> tup1
(1, 2, 4, 2, 2, 3)

修改

尽管元组时不可变的,但可以通过对元组进行组合来修改元组

>>> tup1
(1, 2, 4, 2, 2, 3)
>>> tup2 = ('a','b','v')
>>> tup3 = tup1 + tup2;tup3
(1, 2, 4, 2, 2, 3, 'a', 'b', 'v')

复制

元组可以通过*进行复制

>>> tup = 1,
>>> tup1 = tup * 3;tup1
(1, 1, 1)

删除

元组可以通过del删除

>>> tup1
(1, 1, 1)
>>> del tup1
>>> tup1
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    tup1
NameError: name 'tup1' is not defined

删除后再访问就会报错

参考文献:
参考1
参考2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值