我相信学习python过程中,很多人都会在元组和列表两者之间迷惑,不知两者的区别,看到代码不知是元组还是列表。之前是写过一篇关于两者的区别,这篇文章丰富之前一篇的内容和增加记忆的小技巧部分内容。

一. 相同点:

列表和元组是Python中都是非常常用的两种数据结构,它们都很多相同点,所以也容易让人搞乱,下面先说相同点。

python 元组和列表有什么区别(python学习之元组和列表的区别和区分小技巧)(1)

从上图的例子可知,两者的确是非常相似的数据结构。

python 元组和列表有什么区别(python学习之元组和列表的区别和区分小技巧)(2)

  1. 都是序列类型的数据结构,元素是有顺序的。
  2. 其中的元素都可以存储任何数据类型,都可以嵌套
  3. 都可以通过索引访问,如test[0],test[1]
  4. list和tuple都支持负索引,如test[-1]就是2.3,是指最后一个元素,这里是一个重要的知识点,可以理解为所有元素围成一个圆圈,第一个元素是代表0,再往前就是-1,代表最后一个元素。
  5. list和tuple都支持切片操作,即可以截取序列中的一部分元素,如下图的test[0:2],其中需要注意的是这里代表的是0元素开始,到2元素的前一个,不含序号为2的元素。这里是需要注意的。元素的序号都是从0,1,2,3,.......排列,0号是代表第一个元素。

python 元组和列表有什么区别(python学习之元组和列表的区别和区分小技巧)(3)

二、不同点

1、列表list是可以动态修改的,是可变的序列,包括随时随地添加、修改和删除元素,即增删改查都是可以的,而元组tuple只能够查询,不能够有修改的操作,属于静态的序列。如果要改就只能整体的删除和重建。

2、列表list由于可以允许修改和动态扩展,有以下方法:append()、extend()、insert()、remove()和pop()等实现动态添加和修改列表元素,而元组tuple则没有这些方法。

3、元组tuple比列表list的访问和处理速度更快。由于元组是存放在一块的内存空间,所以效率会更高。

4、元组比列表更安全,但是没有列表灵活。由于元组是不能修改的,所以在数据上会比列表更安全,但是使用上不灵活。

5、列表不能作为字典的键,而元组可以。

6、存储方式不同。空列表 比空元组多占用16个字节。

python 元组和列表有什么区别(python学习之元组和列表的区别和区分小技巧)(4)

7、如上图所示,表示方法也是不同的,元组是使用小括号()表示,列表是使用中括号表示。这里有个小知识点就是,当一个元组中只有一个元素时,需要加一个逗号进行区分。因为如(1),这里容易与表示整数1的小括号运算,所以需要加以区分,在计算机代码中是需要非常明确的,所以如果只有一个元素时,需要加逗号,如a=(1,)。

python 元组和列表有什么区别(python学习之元组和列表的区别和区分小技巧)(5)

对于初学者在遇到元组和列表的代码时就难以区分了,不知是元组还是列表。我的经验是运用联想记忆法来区分的,比如()这个是圆弧形状的,那么就是元(圆)组,另一个中括号的自然就是列表。这样的记忆方法在区分两者的表示形式方面非常有用。

如对python学习感兴趣,欢迎加关注和交流。

,