每天开心一点

python语言中list和tuple,dict和set的区别

2020-09-03 14:14:00    六月    626    来源: https://www.cnblogs.com/shengulong/p/7149832.html


列表list 元组 tuple 集合set 字典dict
数据类型

序列

序列

集合


映射

可变序列 可变 不可变    -   -
可变对象 可变 不可变 可变 可变
初始化

list1 = list()

list1 = []

tuple1 = tuple()

tuple1 = ()

set1 = set()

set=([iterable])

dict1 = dict()

dict1 = {}

示例 list1 = [1, 'a',True] tuple1 = (1,3,['a', 'b'])

set1 ={1, 3, 5}

set1 ={1, 3, True} =>{1, 3}

dict1 = {'a': 'hello', 2: 'world'}
切片 [] [] - -
追加 list.append()

不可追加

使用 + 实现元组合并

set.add(key) dict[newkey]=new_value
遍历

  for  in

 for  in  for  in  for  in
插入 list.insert(k,value) 不可插入 set.add(key)
dict[key]=value
修改 list[k]=new_value   不可修改
dict[key]=value
排序

list.sort()#修改原list,无返回

sorted(list)#返回一个新list

sorted(tuple) 无序 无序
删除

list.pop(), list.pop(k)

del list[index]

不可删除单个元素,

使用del 删除整个元组

set.remove(key)

dict.pop(key)

del dict[key]

访问 list[k] tuple[k] set[key]
dict[key], dict.get(key)
常用函数&方法

len(),min(), max()

cmp()

---------------------

append(), count(),extend(),index(),insert(),pop(),remove, reverse(),sort()

len(),min(), max()

cmp()

len()

----------------

add(),clear(),copy(),difference(),difference_update()

discard(),intersection(),intersection_update(),isdisjoint()

issubset(),issuperset(),pop(),remove(),union(),update()

使用运算符:- 差集 | 交集

& 并集  ^ 不同时存在

str(), type(), len(), cmp()

---------------------

clear(),copy(), fromkeys(), get(), has_key(), items(), keys(), values(),setdefault(),update(), pop(), popitem()




一组key的集合,但不存储value,

没有重复的key

key-value存储方式,key不可重复,

一个key只能对应一个value,

多次对一个key放入不同的

value,后面的值会把前面的值覆盖




d ict和set当中都没有重复的key值,且key值必须是不可改变的对象

其他关于set的函数: a和set类型,b是可遍历类型。a.union(b), a.difference(b), a.intersection(b), a.symmetric_difference(b), a.pop(value). &(intersection),    |(union),       -(difference) 这三个操作符只适用于两个sets之间。

for key in d : 

   print  (key, ':' , d.get(key))


列表list是最自由的,可以使用索引、切片,可以进行计算和修改;

元组tuple是不自由的,数据不能更改,但是和list一样具有序列,可以用索引和切片;

字典dict是由无序的键值对构成,可以通过key去索引value的值,修改数据可以通过key来修改对应的value;

set集合是无序的,不重复的,和字典类似也是使用中括号{}表示,区别在于字典是用键值对,而set由数据或者元素或者列表构成;


tuple是什么?

另一种有序列表叫元组:tuple。

tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

list 和tuple的区别?

list 列表有 增加  删除  替换等方法  而 tuple一旦初始化不能修改

1、dict 是什么?

python 内置了字典: dict支持,相当于其他语言中的Map ,以键值对方式存储 key-value,具有极快的查找速度

特点: 插入、查找速度快,无序不可以重复,重复插入一个Key 会覆盖之前的 值

2、set 是什么?

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

>>> s = set(['A', 'B', 'C'])

>>> s

{'A', 'B', 'C'}

3、dict 和list的区别

和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;

需要占用大量的内存,内存浪费多。

而list相反:

查找和插入的时间随着元素的增加而增加;

占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。


参考:1、 http://www.runoob.com/python/python-dictionary.html

      2、 https://blog.51cto.com/14531342/2475831

    3、 https://www.liaoxuefeng.com/wiki/897692888725344/923029049703744

      4、 http://www.shuopython.com/archives/1207

      5、 https://www.jianshu.com/p/0015a0ef4071