列表:动态的,长度不固定,可以增删改查

元组:静态的,长度固定,无法增删减。如果想对已有元组进行改变,只能创建一个新的元组

 

创建&初始化

列表   new_list=[1,2,3,4,5,6]

   empty_list=list()

   []和list()都可以直接创建空列表,但是list()是一个function call,会创建stack,并进行参数检查操作,而[]是内置的C函数,效率更高

元组  new_tup=(1,2,3,4,5,6)

存储差异

列表和list中放置了相同的元素,但是元组的存储空间比列表的要少。

  是因为列表是动态的,需要存储指针来指向对应的元素,并且需要额外存储已经分配的大小长度(这种机制保证操作的高效性:增加/删除的时间复杂度为 O(1),当空间不足时,及时分配额外的空间

  元组的长度大是固定的,元素不可变,所以存储空间固定

所以元组要比列表更轻量级一些,性能略优于列表。

而元组又属于静态变量,当静态变量不被使用且占用空间不大,python会将这部分内容进行缓存,可以加快运行速度

切片

索引从0开始,-1可以表示最后一个元素。不可以超出边界

列表  new_list[0,2]

元组 new_tup=(1,2)

元组和列表转换

list(new_tup)

tuple(new_list)

常用方法

可以通过dir查看所有内置方法

 

 

元组方法

  • len(tup) 元组的元素个数
  • max(tup)元组中的最大值
  • tup.count(obj) 查找元素出现的次数
  • tup.index(index)查找对应索引的元素
  • sorted(tup,key,reverse=False)对元组进行排序,会生成一个新的元组,默认从小到大排序
  • del tup 删除整个元组

列表方法

  • len(list):列表元素个数
  • max(list) 列表元素最大值
  • list.append(obj) 在列表最后追加元素
  • list.count(obj) 元素在列表中出现的次数
  • list.extend(suq)在列表末尾追加另一个序列的所有值
  • list.index(obj)找到元素在列表中第一次出现的索引
  • list.insert(index,obj)在指定位置插入元素
  • list.pop(index)默认移出列表最后一个元素,并返回该元素的值。若指定index,则删除对应index的元素,并返回该元素的值
  • del list[index] 删除列表指定索引的元素
  • list.remove(obj)移出列表中某个值的第一个匹配项
  • list.reverse()翻转列表中的元素
  • list.sort(key=node,reverse=False) 对原列表进行排序,默认为由小到大
  • list.copy()返回列表的浅复制,等于list[:],浅复制,复制后初始内容相同,id不同,后续原列表变化不会影响复制的列表
  • for index,value in enumerate(list)可以依次遍历列表的所有索引和值
  • list[index]=obj 通过索引修改元素值,索引不能越界
  • del list  删除列表

 

 参考资料:

https://www.runoob.com/python/python-tuples.html

  

posted on 2021-12-11 22:52  木木-林  阅读(321)  评论(0编辑  收藏  举报