数据结构 | 中文 | 是否有序 | 是否可重复 | 是否可操作 | 例子 | 查询方式 | 其他常见用法 |
---|---|---|---|---|---|---|---|
list | 列表 | 有序 | 可重复 | 可修改、可更新、可删除 、可嵌套 | s1 = ['a',1,1,{'a':2}] | 下标索引查询 如: s1[0:2] | s1.append('b')、del s1[2] 、s1.remove('a') |
set | 集合 | 无序 | 不重复 | 可修改、可更新、可删除 、不可嵌套 | s1 = set() | 下标索引查询 如: s1[0:2] | s1.append('b')、del s1[2] |
tuple | 元组 | 有序 | 可重复 | 不可更改 | c = (1,1,'iuuy',(1,)) | 下标索引查询 | for i,j in enumerate(c) |
dict | 字典 | 无序 | key不可重复 | 可更改、可更新、可删除、可嵌套 | s1 = {'苹果':10} | key-value查询 | s1['草莓'] = 20 |
操作方式
新建
# list
l = []
l = list()
l = ['hello','list']
# set
sl = set()
sl = set(('hello','set')) / sl = set(['hello','set'])
# tuple
t = ()
t = tuple()
t = ('hello','tuple')
# dict
dic = dict()
dic = {'first':'hello','second':'dict'}
新增
# list
l.append('hello') # 追加
l.insert(1, 'world') # 指定位置插入
l.extend(['python','3.6']) # 扩展
# set
sl.add('python')
sl.update(['3.6'])
# tuple 不可更改 可通过转成list后更改
# dict
dic['third'] = 'python'
查询
# list
l[0] # 指定位置
# 'hello'
l[0:2] # 指定范围
# ['hello', 'world']
# set
sl.intersection(set(['hello'])) # 用交集去查询
# tuple
# 可用namedtuple来定义
t[0]
# 'hello'
# dict
dic['first']
# 'hello'
删除
# list
l.pop(0) # 指定索引,返回删除元素'hello',
# set
sl.pop() # 删除末尾元素(这里没有索引), 返回删除值'3.6'
sl.remove('hello') # 删除指定元素
# tuple 不可更改
# dict
dic.pop('first') # 则删除字典key'first'及对应value
dic.clear() # 则直接情况字典的所有元素
特别注意
定义单个元组时,需要加逗号 如 c = (1,)
另外提一个不可修改的集合 , frozenset, 表示冻结集合,不可修改、不可更新、不可删除、不可添加
可哈希的元素有:int、float、str、tuple 不可变的,属于值类型。
不可哈希的元素有:list、set、dict 可变的,属于引用类型