关于python tuple

tuple(元组)作为python中比较标志的数据结构,与list(列表)类似(这里不详细讲述列表),不同之处在于tuple的元素不能修改(一定程度上是这样的,后面会提到)。下面我来举几个例子。

举例子之前,先说明几个概念:

Python id() 函数:

用来获取对象地址

语法:id([object]) 

返回对象的内存地址

举个例子如图1-1


图1-1

Python 中 is 和 == :

is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同

== 比较的是两个对象的内容是否相等

差别在于is比较的是对象是否完全相同,即所占用的内存地址是否相同

而 == 比较的是内容是否相同(外表美和内在美) 

举个例子如图1-2(图中两句一样的句子,但是由于地址不同,所以is的时候两边是不相等的,而 == 由于两句内容一样,所以返回true)

图1-2

好,铺垫了一丢丢,我们要讨论本篇的主角:Tuple

我们先定义一个元组tuple

tupleA = ('a','b','c')

先尝试用list的方法操作,试着添加一个,tupleA.append("test")

图1-3

报错!说了tuple是不可修改的!虽然这样很蠢,但尝试一下,证实了tuple确实是不这样子可以修改的。


tuple的基本操作:

1    cmp(tuple1, tuple2)

比较两个元组元素。

2    len(tuple)

计算元组元素个数。

3    max(tuple)

返回元组中元素最大值。

4    min(tuple)

返回元组中元素最小值。

5    tuple(seq)

将列表转换为元组。


刚才的常规操作好像征服不了tuple,现在关键的来了,来定义一个花样元组

tupleB =  ('this','is',['girl','boy'])

先看下这个tupleB 的内存地址

图1-4

然后我们执行一个神奇操作:

tupleB[2].append('emmmmm')

图1-5

成功了!

图1-6

虽说不管方法好不好,但是我们貌似成功了。我们再看下内存地址

图1-7

所以总结来看从定义的角度来说元组是不可变的,因为元组中的对象不能被删除或被新对象所替代。

但是另一种意义上说然而在另一种意义上,元组是可变的,因为它们的值可以被改变。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容