千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:哈尔滨千锋IT培训  >  技术干货  >  列表、元组、字典、集合的区别?

列表、元组、字典、集合的区别?

来源:千锋教育
发布人:xqq
时间:2023-10-21 01:57:28

一、列表

1.任意对象的有序集合 
列表是一组任意类型的值,按照一定顺序组合而成的 
2.通过偏移读取 
组成列表的值叫做元素(Elements)。每一个元素被标识一个索引,名列前茅个索引是0,序列的功能都能实现 
3.可变长度,异构以及任意嵌套 
列表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套 
4.可变的序列 
支持索引、切片、合并、删除等等操作,它们都是在原处进行修改列表 
5.对象引用数组 
列表可以当成普通的数组,每当用到引用时,Python总是会将这个引用指向一个对象,所以程序只需处理对象的操作。当把一个对象赋给一个数据结构元素或变量名时,Python总是会存储对象的引用,而不是对象的一个拷贝

二、元组

1.任意对象的有序集合 
与列表相同 
2.通过偏移存取 
与列表相同 
3.属于不可变序列类型 
类似于字符串,但元组是不可变的,不支持在列表中任何原处修改操作,不支持任何方法调用 
4.固定长度、异构、任意嵌套 
固定长度即元组不可变,在不被拷贝的情况下长度固定,其他同列表 
5.对象引用的数组 
与列表相似,元祖是对象引用的数组

和list相比 
1.比列表操作速度快 
2.对数据“写保护“ 
3.可用于字符串格式化中 
4.可作为字典的key

三、字典

1.通过键而不是偏移量来读取 
字典就是一个关联数组,是一个通过关键字索引的对象的集合,使用键-值(key-value)进行存储,查找速度快 
2.任意对象的无序集合 
字典中的项没有特定顺序,以“键”为象征 
3.可变长、异构、任意嵌套 
同列表,嵌套可以包含列表和其他的字典等 
4.属于可变映射类型 
因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值。字典是少数内置的映射类型(键映射到值的对象) 
5.对象引用表 
字典存储的是对象引用,不是拷贝,和列表一样。字典的key是不能变的,list不能作为key,字符串、元祖、整数等都可以

和list比较,dict有以下几个特点: 
1.查找和插入的速度极快,不会随着key的增加而增加 
2.需要占用大量的内存,内存浪费多 
而list相反: 
1.查找和插入的时间随着元素的增加而增加 
2.占用空间小,浪费内存很少 
所以,dict是用空间来换取时间的一种方法

四、集合

1.是一组key的集合,但不存储value,并且key不能重复 
创建一个set,需要提供一个list作为输入集合,s = set([1,2,3]),注意,传入的参数 [1, 2, 3] 是一个list,而显示的 set([1, 2, 3]) 只是告诉你这个set内部有1,2,3这3个元素,显示的[ ]不表示这是一个list 
2.重复元素在set中自动被过滤 
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作

还有一种集合是forzenset( ),是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法

和dict对比 
1.set和dict的少数区别仅在于没有存储对应的value 
2.set的原理和dict一样,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”

延伸阅读:

五、Python Dict介绍

DIct字典:字典是一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号分割,每个键值对之间用逗号分割,整个字典包括在花括号中,eg:d = {key1 : value1, key2 : value2 }

Dict定义:

di = {}或 di = dict()#定义一个空字典

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python函数中的参数有哪些?

2023-11-14

python中pygal模块如何使用?

2023-11-14

Python描述符中有哪三种方法?

2023-11-14

最新文章NEW

如何使用python any()判断多元素?

2023-11-14

python中doctest库是什么?

2023-11-14

python模块引入的三种方式

2023-11-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>