• 流畅的python和cookbook学习笔记(三)


    1.双向队列

       collections.deque 类(双向队列)是一个线程安全、可以快速从两端添加或者删除元素的数据类型。

      rotate和popleft操作,rorate可以把前后元素换位。popleft可以从左边删除元素,extendleft可以从左边添加元素。

    >>> from collections import deque  # 导入deque模块
    >>> dq = deque(range(10), maxlen=10)  # deque可以有maxlen参数,限制元素的个数
    >>> dq 
    deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=10) 
    >>> dq.rotate(3)  #  rotate旋转操作接受一个参数 n,当 n > 0 时,队列的最右边的 n 个元素会被移动到 队列的左边。当 n < 0 时,最左边的 n 个元素会被移动到右边。 
    >>> dq 
    deque([7, 8, 9, 0, 1, 2, 3, 4, 5, 6], maxlen=10) 
    >>> dq.rotate(-4) 
    >>> dq 
    deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], maxlen=10) 
    >>> dq.appendleft(-1)  
    >>> dq 
    deque([-1, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=10)
    >>> dq.extend([11, 22, 33])  
    >>> dq 
    deque([3, 4, 5, 6, 7, 8, 9, 11, 22, 33], maxlen=10) 
    >>> dq.extendleft([10, 20, 30, 40])  
    >>> dq 
    deque([40, 30, 20, 10, 3, 4, 5, 6, 7, 8], maxlen=10)

    2.heapq 模块

      heapq 模块有两个函数:nlargest() 和 nsmallest()可以从一个集合中获得最大或者最小的 N 个元素列表。

    import heapq 
    nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2] 
    
    print(heapq.nlargest(3, nums)) # Prints [42, 37, 23]
    
    print(heapq.nsmallest(3, nums)) # Prints [-4, 1, 2]
  • 相关阅读:
    VMWare Workstation的激活码 亲测有效
    虚拟机搭建appRtcDemo的appr.tc服务器
    windows webrtc支持H264的源码编译
    windows webrtc 编译
    获取windows系统分屏个数
    windows cmd窗口光标闪动效果消失
    win10 检测系统是不是正版的 以及slmgr.vbm -dlv命令不生效
    symfonos2
    利用ARP欺骗进行MITM(中间人攻击)
    内网学习之MySQL服务提权
  • 原文地址:https://www.cnblogs.com/zt19994/p/7436296.html
Copyright © 2020-2023  润新知