认识模块

引入模块的方式:

import 模块

from xxx import 模块

简单的模块认识:

collections 中封装了一些集合类的相关操作,比如我们学过的lterable,lterator, Counter, deque, OrderDict, defaultdict以及namedtuple

lterable,lterator,是迭代器以及可迭代对象

Counter 计数器

实例:  两个例子打印结果是一样的

s = "alex like pig"
  print(Counter(s))

s = "alex like pig"
  dic = {}
for c in s:
  dic[c] = dic.get(c, 0) + 1
print(dic)

deque 双向队列:

(重点)说双向队列之前我们需要了解两种数据结构. 1. 栈, 2. 队列
1. 栈: FILO. 先进后出 -> 砌墙的砖头, 老师傅做馒头
2. 队列: FIFO. 先进先出 -> 买火车票排队, 所有排队的场景

栈的增加以及删除:

# class stackException (Exception):   #自定义一个异常类
# pass
# class Stack:
# def __init__(self,saiz): #封装属性,saiz指的是最后一个元素+1, 创建了一个索引以及空列表
# self.index = 0
# self.saiz =saiz
# self.lst = []
#
# def add(self,yuan): #进行多重判断如果,索引等于了saiz了,搜索的类目就已经溢出了,然后抛出我们自定义的异常,如果没有的话在相应的索引位置插入一个元素
# if self.index == self.saiz:
# raise stackException("溢出了")
# self.lst.insert(self.index,yuan)
# self.index += 1
#
# def del_yuan(self): #当saiz指针等于0就代表列表没有元素,就抛出异常,否则,将拿出最后一个放进去的元素
# if self.saiz == 0:
# raise stackException
# self.index -= 1
# item = self.lst.pop(self.index)
# return item
遵循一个原则,最先放进去的最后取值

队列: python提供了queue模块. 使用起来非常方便
import queue
q = queue.Queue()
q.put("李嘉诚")   #往队列里面添加值
q.put("张开")
q.put("张毅")
print(q)
print(q.get())  #get  向外拿出,先放进去的先拿出来的
print(q.get())  #如果队列里面已经没有元素还在往外面拿值得话,会进入死循环
print(q.get())

双向队列:两边都可以放入值,都可以往外面取值

# from collections import deque    #因为deque队列是collection中的,所以要从collection中导入
# d = deque()
# d.append("邓超")
# d.append("孙俪")
# d.append("黄晓明")
# d.append("杨颖")
# d.appendleft("林更新") #append是从右面传入值,appendleft从左边去传值

# print(d.pop())     #从右边拿数据
# print(d.popleft()) #从左边拿数据
# print(d.popleft())
# print(d.popleft())
# print(d.pop())



命名元祖 namedtuple
from collections import namedtuple
nt = namedtuple("名称"["x","y"])
n = nt(12,23)
打印结果 n的结果是名称(x=12,y=23)也可以单一打印 n.x或者n.y

orderdict和defaultdict
orderdict 顾名思义. 字典的key默认是无序的. OrderedDict是有序的

dic = {'a':'娃哈哈', 'b':'薯条', 'c':'胡辣汤'}
print(dic)
from collections import OrderedDict
od = OrderedDict({'a':'娃哈哈', 'b':'薯条', 'c':'胡辣汤'})
print(od)

defaultdict: 可以给字典设置默认值. 当key不存在时. 直接获取默认值:

# from collections import defaultdict
# lst = [1,2,3,4,5,6,7,8,9,10]
# # d = defaultdict(list)
# for el in lst:
# if el > 5:
# d["key1"].append(el)
# else:
# d["key2"].append(el)
# print(d)





原文地址:https://www.cnblogs.com/lowen107/p/9959946.html