Python从小白到大牛——进阶(数据结构) ②

数据结构:数组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}

 

 

 

你可能感兴趣的:(☁,后端,├──【Python】,Python从小白到大牛)