数据结构:数组Array,集合Set,列表List,队列Queue,链表Linkedlist,树Tree,堆Heap,栈Stack,字典Dictionary
python中数据容器:序列、集合、字典
注:python中没有数组结构(数组:有序的,元素类型相同)
序列:列表list,字符串str,元组tuple,范围range,字节序列bytes
序列可进行操作:索引,分片,加,乘
元组:
- 元组特点:不可变,创建不可修改
- 使用tuple([iterable])函数或者直接用逗号(,)将元素分隔,a=2,1,3,
- 访问元组,索引a[1],分片a[1:3],拆包str1,_,*n=a
- 遍历元组,for idx,item in enumerate(a): print(idx,item)
列表:
- 使用list([iterable])函数或者用中括号[]包裹
- 追加元素,append()方法(单个元素)或者+运算符和extend([])方法(一个列表)
- 插入元素,list.insert(i,x)
- 替换元素,list[1]=XXX
- 删除元素,remove(x)方法(x是要删除的元素,如没有x元素,抛出异常),pop(i)方法(有i则按索引删除,无i删除最后一个元素,返回值是删除的元素)
- 其他常用方法,reverse()倒置列表,copy()复制列表,clear()清除所有元素,index(x[,i[,j]])返回查找x第一次出现的索引,i,j是范围;count(x)返回x出现的次数
- 列表推导式:list = [x ** 2 for x in range(10) if x% 2 == 0]
集合:
- 不能有重复的元素,无序的
- 集合分为可变集合和不可变集合
- 可变集合:set([iterable])函数或用{},修改可变集合:add(elem)添加,remove(elem)删除元素,如元素不存在抛出错误;discard(elem)删除元素,如元素不存在不抛出错误,pop()删除返回集合中的任意一个元素,clear()清除集合
- 遍历集合,for item in set:print(item)
- 不可变集合:forzenset([iterable])函数,不能用{},不能添加删除及其他操作
- 集合推导式:set = {x ** 2 for x in range(10) if x% 2 == 0}
字典:
- 可迭代,可变,键值对,键不可重复
- dict()函数,或用{}将键值对包裹,dict = {'ni':'hao'},dict = dict((('ni','hao'),('bu','hao'))),dict = dict(ni='hao',bu='hao')此方法key必须是字符串,且省略单双引号,如key是整数或浮点则不可以用此方法
- 添加,dict['ni']='hao'
- 替换,dict['ni']='buhao'
- 删除,del dic['ni'];dic.pop('ni')如不存在‘ni’,抛出异常,可使用默认值dic.pop('ni',‘hao’);dic.popitem()随机删除
- 访问字典,get(key[,default])通过键返回值,如键不存在返回默认值;items()返回字典所有键值对;keys()返回字典键视图;values()返回字典值视图
- 遍历字典,for key,values in dic.items():print(key,values)
- 字典推导式:input_dict = {'one':1,'two':2,'three':3}
output_dict = {k:v for k,v in input_dict.items() if v%2 == 0}