Python列表,元组,集合,字典的区别和相互
发布网友
发布时间:2022-04-24 18:10
我来回答
共3个回答
热心网友
时间:2022-04-06 06:56
元组和列表是类似的, 只是元组不可修改内容
注意这里指的是不可修改元组元素的指向, 你可以修改内容指向的内容
>>> lst = [1, 2, 3] # 定义列表
>>> a = (1, 2, lst, 4) # 注意元组a的a[2]是一个列表
>>> a
(1, 2, [1, 2, 3], 4)
>>> a[2] = 4 # 试图修改元组元素的指向, 报错
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <mole>
a[2] = 4
TypeError: 'tuple' object does not support item assignment
>>> a[2][0] = 0 # 不修改元组元素的指向的元素, 但是修改指向的内容
>>> a
(1, 2, [0, 2, 3], 4)
>>> a[2].append(5) # 不修改元组元素的指向的元素, 但是修改指向的内容
>>> a
(1, 2, [0, 2, 3, 5], 4)
字典完全区别于列表和元组
因为字典使用hash表来存储, 所以只有能够进行hash运算的才能作为键值
个人认为, 一般不可变的都能作为键, 比如str/tuple/None/function.列表不能作为键
最后, 由于字典是hash表算法{字典查找O(1), 列表遍历O(n)}, 在数据量巨大的时候, 字典的查找效率出奇的高
热心网友
时间:2022-04-06 08:14
列表是一组值,其中的值可以改变
元组也是一组值,其中的值不能改变
列表与元组可以相互转换
集合是一组唯一的无顺序的值
字典是无固定顺序的键值对
热心网友
时间:2022-04-06 09:49
Python列表,元组,集合,字典的区别和相互转