Python中的元组

元组是一种固定长度、不可变的python对象序列。

1.创建

创建元组最简单的方法就是用逗号分隔序列值。

tup = 4,5,6
tup
(4,5,6)

当你通过更复杂的表达式来定义元组时,通常需要用括号将值包起来.

tup_2 =(4,5,6),(7,8)
tup_2
((4, 5, 6), (7, 8))

以上是生成了元素是元组的元组。

2.转换

你可以使用tuple函数将任意序列或迭代器转换为元组:

tuple([4,0,2])
(4, 0, 2)

tup = tuple('string')
tup
('s', 't', 'r', 'i', 'n', 'g')

元组的元素可以通过中括号[ ]来获取,在大多数序列类型中都可以使用这个方法。

3.修改

虽然对象元组中储存的对象其自身是可变的,但是元组一旦创建,各个位置上的对象是无法被修改的:

tup = tuple(['foo',[1,2],True])
tup[2] = False
TypeError                                 Traceback (most recent call last)
<ipython-input-11-b89d0c4ae599> in <module>()
----> 1 tup[2] = False

TypeError: 'tuple' object does not support item assignment

但是如果元组中有一个对象是可变的,例如列表,那么你就可以在它内部进行修改:

tup[1].append(3)
tup
('foo', [1, 2, 3], True)

也可以使用+号连接元组生成更长的元组:

(1,None,'foo')+(2,3)+(1,'bear')
(1, None, 'foo', 2, 3, 1, 'bear')

将元组乘以整数,则会和列表一样,生成多份拷贝的元组,请注意对象自身并没有复制,只是指向它们的引用进行了复制。

4.拆包

如果你想要将元组型的表达式赋值给变量,python会对等号右边的值进行拆包;
即使是嵌套元组也可以拆包,使用这个功能可以轻易的变换变量名。
拆包的一个常用场景就是遍历元组或者列表组成的序列:

seq = [(1,2,3),(4,5,6),(7,8,9)]
for a,b,c in seq:
    print('a ={0},b ={1},c ={2}'.format(a,b,c))

a =1,b =2,c =3
a =4,b =5,c =6
a =7,b =8,c =9

另外一个常用场景就是从函数返回多个值。
当然paython语言也有一些更为高级的元组拆包功能,用于帮助你从元组的起始位置“采集”一些元素。这个功能就是使用特殊语法*rest,用于在函数调用时获取任意长度的位置参数列表:

values= 1,2,3,4,5
a,b,*rest = values 

a,b
(1, 2)

rest
[3, 4, 5]

rest部分有时是你想要丢弃的数据,为了方便会使用下划线(_)来表示不想要的变量:

a,b,*_ = values
元组方法

由于元组的内容和长度是无法改变的,所以它的实例方法比较少,不过一个常用的方法就是count(列表中也可以用),用于计量某个数值在元组中出现的次数:

a = (1,2,2,2,3,4,2)

a.count(2)
4

以上就是paython中元组的部分用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格陵Lan丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值