南苑~春波

导航

 

python中Tuple详解

另外, 还有一个和list 很像的数据tuple.中文叫元组.他和list的主要区别就是, tuple是一开始就定义好的, 即, assign first,之后就永远不能被改变了. 所以, 一般全局比较重要的数据,我们都是使用tuple进行存放的.
tuple操作

(一)我们来创建一个Tuple

创建一个Tuple
通常来说,Tuple是放在parentheses 即, 圆括号() 内部.

>>> tub = (1,2,3)
>>> type(tub)
<class 'tuple'>

不过, 最近很流行的是 without parentheses. 即, 不加括号的方式. show:

>>> tub = 1,2,3
>>> type(tub)
<class 'tuple'>

这个名叫, tuple packing. 个人翻译为元组包.
不过在, 使用tuple的时候,需要注意,只有一个元素的tuple的创建(md,一个元素你还创建tuple干嘛,浪费内存?)一个元素的tuple创建, 需要在末尾+, 进行相关标识

>>> tub = 1,
// 或者
>>> tub = (1,)
>>> type(tub)
<class 'tuple'>

如果,你想访问tuple的话, 和访问list 是一个道理

>>> tub = (1,2,3,4,5,6,7)
>>> tub[0]
1
//当然,你也可以取负值
>>> tub[-1]
7

所以,这里我们也可以使用for...in...进行 遍历.

(二):不变的Tuple

一般创建了一个tuple, 之后你就用于无法改变他的值了, 也就是你不能删除,或者添加。不过,如果你的tuple里面放一些可变的内容的话, 比如,list的话,那情况就不一样了。基于这一点,我们理解tuple 应该说为 shallow不变形。即,不能改变值类型,但可以改变引用类型.

>>> tup
(1, 2, 3, [2, 3], 5)
>>> tup[3]
[2, 3]
>>> tup[3].append(1)
>>> tup
(1, 2, 3, [2, 3, 1], 5)
//删除tup, 会报错
>>> del tup[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

虽然,我们不能对tuple执行CD操作, 但相关的查询方法我们还是可以使用的

(三):Tuple 查询

在tuple里面有两个查询方法, index和count, 另外你使用in也是没有问题的

>>> my_tuple = ('a','p','p','l','e',)
>>> my_tuple.count('p')
2
>>> my_tuple.index('l')
3
>>> 'a' in my_tuple
True

同样, 关于list的一些built-in methond. 在tuple身上也是使用的, 有 max,min,sum,all,any,len,sorted. 这几个, 都是木有问题的

总结一下: tuple方法什么时候我们用Tuple?
tuple就是用来放不变的数据,并且tuple在内部中有遍历加速(因为不变).


posted on 2019-07-15 16:09  南苑~春波  阅读(239)  评论(0编辑  收藏  举报