python基础
文章平均质量分 65
怙乐不悛
这个作者很懒,什么都没留下…
展开
-
python基础1-5 :collections.defaultdict 构建 multidict&&OrderedDict模块&&zip() 函数
python cookbook第一章第6-8节1.6 字典中的键映射多个值问题: 怎样实现一个键对应多个值的字典(也叫 multidict)?解决方案 : 一个字典就是一个键对应一个单值的映射。 如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中,比如列表或者集合里面。比如,你可以像下面这样构造这样的字典:d = { 'a' : [1, 2, 3], 'b' : [4, 5]}e = { 'a' : {1, 2, 3}, 'b' : {原创 2021-10-24 10:26:22 · 191 阅读 · 0 评论 -
python基础1-4:heapq 模块实现优先级排序
python cookbook第一章第5节1.5 实现一个优先级队列问题: 怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop 操作总是返回优先级最高的那个元素解决方案: 下面的类利用 heapq 模块实现了一个简单的优先级队列:import heapqclass PriorityQueue: def __init__(self): self._queue = [] self._index = 0 #压入的顺序 def原创 2021-10-23 16:14:38 · 1025 阅读 · 0 评论 -
python基础1-3:heapq 模块的nlargest() 和 nsmallest()
python cookbook第一章第4节1.4 查找最大或最小的 N 个元素问题:怎样从一个集合中获得最大或者最小的 N 个元素列表?解决方案:heapq 模块有两个函数:nlargest() 和 nsmallest() 可以完美解决这个问题。import heapqnums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]print(heapq.nlargest(3, nums)) # [42, 37, 23]print(heapq.nsmallest原创 2021-10-23 16:00:34 · 5616 阅读 · 0 评论 -
python基础1-2:collections.deque
python cookbook第一章第3节1.3 保留最后 N 个元素问题:在迭代操作或者其他操作的时候,怎样只保留最后有限几个元素的历史记录?解决方案: 保留有限历史记录正是 collections.deque 大显身手的时候。比如,下面的代码在多行上面做简单的文本匹配, 并返回匹配所在行的最后N行:from collections import dequedef search(lines, pattern, history=5): previous_lines = de原创 2021-10-23 15:49:07 · 106 阅读 · 0 评论 -
python基础1-1:解压序列赋值&&星号解压语法
python cookbook第一章第1-2节1.1 解压序列赋值给多个变量问题: 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量?解决方案 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。唯一的前提就是变量的数量必须跟序列元素的数量是一样的。代码示例:p = (4, 5)x, y = px #4y #5data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]name,原创 2021-10-23 15:34:05 · 297 阅读 · 0 评论