列表(list)
列表是有序的集合,可变的,内存地址空间是有序的,通过索引随机读取,查询快,但是列表的读取会随着列表的长度增大而增大,插入和删除效率低,并且内存空间利用率低,分配一定的内存,如果不够用,需要重新创建更大的内存空间。
元组(tuple)
元组与列表类似,都是有序的集合,也可以通过索引进行读取,但是元组是不可变的,一旦分配好内存和元素后,元组的空间和元组中的元素就是不能改变的。
字典(dict)
字典是无序的,通过key-value的形式存储,所以,内存占用大,读取效率高,通过key进行读取,读取效率不会随着key的增大而增大,key是不可重复的,同一个key出现相同的value会被覆盖。
集合(set)
集合相当于只存储了字典中的key,而没有value,所以,集合中的元素是不可重复的,一般会用集合进行去重。
集合的创建通过set(),集合的表现形式是也是{}。
python 字典与json的区别
一. python的字典和json字符串的区别
python中,json和dict非常类似,都是key-value的形式,而且json和dict也可以非常方便的通过dumps和loads互转,但是它们之间还是有区别的:
json:是一种数据格式,是纯字符串。可以被解析成python的dict或其他形式。
dict:是一个完整的数据结构,是对hash table这一数据结构的实现,是一套从存储到提取都封装好的方案。它使用内置的hash函数来规划key对应的value的存储位置,从而获得O(1)的数据读取速度。
二. json和dict对比:
1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等。
2)json的key可以是有序、重复的;dict的key不可重复;
3)json的value只能是字符串、浮点数、布尔值或者null,或者它们构成的数组或者对象;
4)json任意key存在默认值undefined,dict默认没有默认值;
5)json访问方式可以是[],也可以是.,遍历方式分in,of; dict的value仅仅可以下标访问;
6)json的字符串强制用双引号,dict的字符串可以用单引号、双引号;
7)dict可以嵌套tuple,json里只有数组
8)json:true、false、null
9)dict:True、False、None
10)json中文必须是unicode编码,如“\u6211”
11)json的类型时字符串,字典的类型是dict