01 2020 档案

摘要:问题 怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)? 问题 怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)? 解决方案 考虑下面两个字典: a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 阅读全文
posted @ 2020-01-07 16:45 0bug 阅读(99) 评论(0) 推荐(0)
摘要:问题 怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)? 问题 怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)? 解决方案 考虑下面的股票名和价格映射字典: prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205 阅读全文
posted @ 2020-01-07 16:05 0bug 阅读(127) 评论(0) 推荐(0)
摘要:问题 你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。 问题 你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。 解决方案 为了能控制一个字典中元素的顺序,你可以使用 collections 模块中的 OrderedDict 类。 在迭代操作的时候它会保持元 阅读全文
posted @ 2020-01-07 16:00 0bug 阅读(121) 评论(0) 推荐(0)
摘要:问题 怎样实现一个键对应多个值的字典(也叫 multidict)? 问题 怎样实现一个键对应多个值的字典(也叫 multidict)? 解决方案 一个字典就是一个键对应一个单值的映射。如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面。比如,你可以像下面这样构 阅读全文
posted @ 2020-01-07 15:54 0bug 阅读(58) 评论(0) 推荐(0)
摘要:问题 怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop 操作总是返回优先级最高的那个元素 问题 怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop 操作总是返回优先级最高的那个元素 解决方案 下面的类利用 heapq 模块实现了一个简单的优先级队列: import he 阅读全文
posted @ 2020-01-07 15:45 0bug 阅读(155) 评论(0) 推荐(0)
摘要:问题 怎样从一个集合中获得最大或者最小的 N 个元素列表? 问题 怎样从一个集合中获得最大或者最小的 N 个元素列表? 解决方案 heapq 模块有两个函数:nlargest() 和 nsmallest() 可以完美解决这个问题。 import heapq nums = [1, 8, 2, 23, 阅读全文
posted @ 2020-01-07 15:38 0bug 阅读(143) 评论(0) 推荐(0)
摘要:问题 在迭代操作或者其他操作的时候,怎样只保留最后有限几个元素的历史记录? 问题 在迭代操作或者其他操作的时候,怎样只保留最后有限几个元素的历史记录? 解决方案 保留有限历史记录正是 collections.deque 大显身手的时候。比如,下面的代码在多行上面做简单的文本匹配, 并返回匹配所在行的 阅读全文
posted @ 2020-01-07 15:33 0bug 阅读(120) 评论(0) 推荐(0)
摘要:问题 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。 那么怎样才能从这个可迭代对象中解压出 N 个元素出来? 问题 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。 那么怎样才能从这个可迭代对象中解压出 N 个元素出来? 解决方案 P 阅读全文
posted @ 2020-01-07 15:22 0bug 阅读(103) 评论(0) 推荐(0)
摘要:问题 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 问题 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 解决方案 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。 唯一的前提就是 阅读全文
posted @ 2020-01-07 14:46 0bug 阅读(109) 评论(0) 推荐(0)