zoukankan      html  css  js  c++  java
  • 认识模块

    引入模块的方式:

    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)





  • 相关阅读:
    Typora+PicGo图片上传教程
    创建一个springbootcloud项目
    plugin.xml 解析说明
    Java 元注解 使用示例
    Spring 注解学习 使用示例
    springboot2.2 集成 activity6 请假完整示例
    SpringBoot 过滤器,拦截器初步学习整理(有示例代码)
    mybatis plus mysql 代码生成器 示例demo
    Bootstrap相关方法,事件整理
    网站链接
  • 原文地址:https://www.cnblogs.com/lowen107/p/9959946.html
Copyright © 2011-2022 走看看