问题标签 [python-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - python 用过滤器计算可迭代的元素
要计算列表中的元素,您可以使用collections.Counter
,但是如果只需要计算一些元素怎么办?
我已经设置了这个示例(请注意:numpy 只是为了方便。通常该列表将包含任意 python 对象):
我想计算一个数字在此列表中出现的频率,但我只对 <= 10 的数字感兴趣。
这是要击败的基线。计数器只计算所有内容,这应该会产生一些开销。
在计算迭代的同时过滤它似乎是不可能的。但是下面的代码风格很糟糕,它遍历列表两次,而不是使用单个循环:
这种加速基本上可以忽略不计。让我们尝试一个循环:
好吧,我的单循环更糟。我假设 Counter 从基于 C 的实现中获利?
我尝试的下一件事是将列表表达式切换为生成器表达式。原则上这应该意味着生成器只循环一次,而它被计数器消耗。虽然数字令人失望,但它基本上和香草计数器一样快:
在这一点上,我退后一步,重新计算了几次数字。三个 Counter 版本(未过滤、列表理解、生成器表达式)在速度上几乎相等。该defaultdict
版本始终慢得多。
如何有效地计算 python 列表中的元素,同时过滤元素?
python - python del函数如何在不调用__getitem__的情况下工作
在python中,当一个对象的类定义一个对象时,它是可下标的
方法,允许我们通过括号语法“获取项目”:
内置 del 函数的语法是:
这会从(可下标的)对象 obj 中删除项目 k。但显然,没有调用特殊的 getitem 方法。
请参阅下面的示例
所以似乎在 a[2] 将工作转发给 getitem 方法之前,解释器知道 del 上下文,并绕过它,直接调用
反而。
这是如何运作的?
最重要的是:这种机制是可定制的吗?
例如,我可以编写一个函数 foo 以便
从不打电话
但是,例如,
python - 我收到此错误 TypeError: filter must be an instance of dict, bson.son.SON, or other type that inherits from collections.Mapping
我正在将上次保存的数据检索到文本字段,以便用户可以继续他们之前所做的工作,此命令在 mongo 控制台中运行良好,在 PyCharm 中我无法找出编写 find() 查询的正确方法
我尝试按照此处的建议将过滤器参数存储在 2 个单独的变量中pymongo error: filter must be an instance of dict, bson.son.SON, or other type that inherits from collections.Mapping
数据库模块
python - 为什么添加两个具有 timedelta 值的计数器会引发 TypeError?
我正在尝试添加两个包含时间增量的计数器。添加计数器会引发以下问题:
这引发了异常:
但是,这不会:
python - Python collections.Mapping:__iter__ 和 __contains__ 尚未提供的 dict_keys 的使用
在 python 3 中, dict (或任何实现 collections.Mapping 接口的东西)有一个keys()
返回 a 的方法dict_keys
,它是可迭代的(产生键,就像__iter__()
这样),但也可以及时响应key in dict_keys
(O(1)
就像__contains__
这样)。
但是还有什么可以dict_keys
为我做的,__iter__
而且__contains__
还没有呢?
python - 只定义了“__getitem__”方法的类如何支持“in”运算符?
如果我定义了以下内容:
在未定义 dunder 方法的情况下如何in
支持运算符。__contains__
例如以下:
将输出:
有任何想法吗?
python - collections.Counter().values() 视图似乎在某些条件下按键排序。为什么以及它们是什么?
Python集合模块中的 Counter() 是一个无序容器,但是当从相同大小的整数构建时,values() 视图看起来好像 Counter 首先按键排序。这在我的计算机 (3.4.3rc1) 以及 Python 版本不超过 3.5 的在线 IDE (tio.run, ideone.com) 上始终如一地发生;3.6+ 或 PyPy 并非如此。
当元素被更新并且对于其他类型和混合整数大小为假时,这并不总是正确的:
这是设计使然还是取决于某些特定因素?在什么约束下,我们可以安全地假设 values() 视图被排序?
python - Python集合模块中大写的意义?
collections
Python模块中类的大写实践有什么意义吗?特别是,我发现OrderedDict
使用 CamelCase 而defaultdict
都是小写字母令人费解。我的假设是他们都会使用 CamelCase,因为它们都是类。
python - 使用显示为十六进制的整数双端队列构建字符串
我有一个充满整数的双端队列,我想以十六进制格式构建一个字符串(或只是打印它)。
我试过
它说 deque 不能解释为整数。我想要类似的东西:
python - Python - 计算列表中字符串的词频,列表中的词数不同
我正在尝试创建一个程序,该程序通过心理健康术语列表运行,查看研究摘要,并计算单词或短语出现的次数。我可以用单个单词来解决这个问题,但我很难用多个单词来做到这一点。我也尝试使用 NLTK ngram,但由于心理健康列表中的单词数量各不相同(即,并非心理健康列表中的所有术语都是二元组或三元组),我也无法让它发挥作用。
我想强调一下,我知道拆分每个单词只会计算单个单词,但是,我只是坚持如何处理列表中不同数量的单词以计入摘要。
谢谢!
在我的示例中,两个摘要都计数为 1,但我想要计数为 2。