python中常见的数据结构:列表-List、元祖-Tuple

  • 列表和元祖都是一个可以放置任意数据类型的有序集合,对于大多数语言来说集合的数据类型必须一致,但是python却可以不相同,列表和元祖中的元素都可以随意嵌套

python数据结构-列表和元祖

  • 列表和元祖中的元素要是是字符时,需要用括号括起来

python数据结构-列表和元祖

  • 列表和元祖的区别:

1、列表是动态的,长度大小不固定,可以随意增加、删除、和改变元素,而不改变列表的变量名称

2、元祖是静态的,长度大小固定,无法增加,删除,和改变元素,如果想改变一个元祖,只能重新开辟一块内存空间,来创建一个新的元祖,

  • 列表和元祖的基本操作以及注意事项

1、列表和元祖都支持 index索引 [] 、以及负数索引 [-1],

2、列表和元祖都支持切片操作,第二个:后面是步长,当步长是-1时,表示对列表反转

python数据结构-列表和元祖

python数据结构-列表和元祖

列表和元祖之间可以随意转换,通过tuple 和list转化

python数据结构-列表和元祖

  • 列表和元祖常见的内置函数

m.count(item) 、n.count(item) 统计列表、元祖中某一个元素出现的次数

m.index(item)、n.count(item) 统计列表、元祖中某一个元素第一次出现的index索引

m.reverse()、m.sort()  分别表示对列表进行原地反转和排序,但是元祖没有这两个方法,因为元祖不可变,

m.sort(reverse=True) 从大到小排序,m.sort(reverse=False) 从小到大排序

python数据结构-列表和元祖

reversed(m)reversed(n)分别对列表和元祖进行反转,并返回一个新的倒转之后的迭代器,可以使用list、tuple进行转化

python数据结构-列表和元祖

sorted(m,reverse=True)、 sorted(n,reverse=True),返回一个排序之后的新的列表,元祖也会被返回一个列表list

python数据结构-列表和元祖

  • 列表和元祖的存储方式,python中列表为了减少每次增加和删除操作时空间分配的开销,python每次分配空间都会额外多分配一些空间,这样的机制叫做 over-allocating,来保证操作的高效性
  • 元祖长度大小固定,元素不可变,所以元祖的存储空间固定

python数据结构-列表和元祖

  • 列表和元祖性能

python数据结构-列表和元祖

初始化一个列表和元祖,元祖的性能要比列表快10倍左右,通过python3 -m timeit "t=[]" 来获取创建list所需的时间

  • 列表和元祖的使用场景

如果存储的数据是一个不变的值,使用元祖来存储

如果存储的数据是一个变化的值,使用列表来存储

 

 

 

相关文章: