序列之三 元组(Python)

序列之三:元组(Python)

元组和列表是非常相近的。在外观上,元组使用(,),而列表使用[]。在功能上,元组不可变,列表可变。

基本操作

创建元组

创建一个元素的元组,需要在元组分割符里面加一个(,),以防止跟普通的分组操作符混淆。

>>> (1)
1
>>> (1,)
(1,)
>>> (1,2,)
(1, 2)

>>> tuple(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> tuple([1])
(1,)

访问元组

>>> aTuple=(123,'abc',['inner','peace'],(7-9j))
>>> aTuple
(123, 'abc', ['inner', 'peace'], (7-9j))
>>> aTuple[1:3]
('abc', ['inner', 'peace'])
>>> aTuple[3:]
((7-9j),)
>>> aTuple[2][1]
'peace'

更新元组

同数字和字符串,元组是不可变类型。不能更新或者改变元组的元素。元组的更新通过现有的元组构造一个新的元组来实现。

>>> t1=(1,)
>>> t2=('a',)
>>> t3 = t1 + t2
>>> t3
(1, 'a')

操作符 + * in

>>> t1
(1,)
>>> t2
('a',)

>>> t3 = t1*3 + t2*2
>>> t3
(1, 1, 1, 'a', 'a')
>>> 1 in t3
True
>>> (1,1) in t3
False

>>> t1 < t3
True
>>> t1  > t3
False
>>> t3 == t3
True

元组的不变性

>>> aTuple
(123, 'abc', ['inner', 'peace'], (7-9j))
>>> id(aTuple)
4304734176

>>> aTuple[0]
123
>>> aTuple[0]=456
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

>>> aTuple[2]=456
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> aTuple[2][0]=456
>>> aTuple
(123, 'abc', [456, 'peace'], (7-9j))
>>> id(aTuple)
4304734176

所有的多对象的,逗号分割的,没有明确用符号定义的,这些集合默认为元组类型。

>>> 1,'abc',[1,2,]
(1, 'abc', [1, 2])
>>> x,y=1,2
>>> x,y
(1, 2)
>>> x
1
>>> y
2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值