问题标签 [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.

0 投票
1 回答
295 浏览

python - python 用过滤器计算可迭代的元素

要计算列表中的元素,您可以使用collections.Counter,但是如果只需要计算一些元素怎么办?

我已经设置了这个示例(请注意:numpy 只是为了方便。通常该列表将包含任意 python 对象):

我想计算一个数字在此列表中出现的频率,但我只对 <= 10 的数字感兴趣。

这是要击败的基线。计数器只计算所有内容,这应该会产生一些开销。

在计算迭代的同时过滤它似乎是不可能的。但是下面的代码风格很糟糕,它遍历列表两次,而不是使用单个循环:

这种加速基本上可以忽略不计。让我们尝试一个循环:

好吧,我的单循环更糟。我假设 Counter 从基于 C 的实现中获利?

我尝试的下一件事是将列表表达式切换为生成器表达式。原则上这应该意味着生成器只循环一次,而它被计数器消耗。虽然数字令人失望,但它基本上和香草计数器一样快:

在这一点上,我退后一步,重新计算了几次数字。三个 Counter 版本(未过滤、列表理解、生成器表达式)在速度上几乎相等。该defaultdict版本始终慢得多。

如何有效地计算 python 列表中的元素,同时过滤元素?

0 投票
2 回答
656 浏览

python - python del函数如何在不调用__getitem__的情况下工作

在python中,当一个对象的类定义一个对象时,它是可下标的

方法,允许我们通过括号语法“获取项目”:

内置 del 函数的语法是:

这会从(可下标的)对象 obj 中删除项目 k。但显然,没有调用特殊的 getitem 方法。

请参阅下面的示例

所以似乎在 a[2] 将工作转发给 getitem 方法之前,解释器知道 del 上下文,并绕过它,直接调用

反而。

这是如何运作的?

最重要的是:这种机制是可定制的吗?

例如,我可以编写一个函数 foo 以便

从不打电话

但是,例如,

0 投票
1 回答
2460 浏览

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

数据库模块

0 投票
1 回答
39 浏览

python - 为什么添加两个具有 timedelta 值的计数器会引发 TypeError?

我正在尝试添加两个包含时间增量的计数器。添加计数器会引发以下问题:

这引发了异常:

但是,这不会:

0 投票
0 回答
29 浏览

python - Python collections.Mapping:__iter__ 和 __contains__ 尚未提供的 dict_keys 的使用

在 python 3 中, dict (或任何实现 collections.Mapping 接口的东西)有一个keys()返回 a 的方法dict_keys,它是可迭代的(产生键,就像__iter__()这样),但也可以及时响应key in dict_keysO(1)就像__contains__这样)。

但是还有什么可以dict_keys为我做的,__iter__而且__contains__还没有呢?

0 投票
2 回答
54 浏览

python - 只定义了“__getitem__”方法的类如何支持“in”运算符?

如果我定义了以下内容:

在未定义 dunder 方法的情况下如何in支持运算符。__contains__例如以下:

将输出:

有任何想法吗?

0 投票
0 回答
118 浏览

python - collections.Counter().values() 视图似乎在某些条件下按键排序。为什么以及它们是什么?

Python集合模块中的 Counter() 是一个无序容器,但是当从相同大小的整数构建时,values() 视图看起来好像 Counter 首先按键排序。这在我的计算机 (3.4.3rc1) 以及 Python 版本不超过 3.5 的在线 IDE (tio.run, ideone.com) 上始终如一地发生;3.6+ 或 PyPy 并非如此。

当元素被更新并且对于其他类型和混合整数大小为假时,这并不总是正确的:

这是设计使然还是取决于某些特定因素?在什么约束下,我们可以安全地假设 values() 视图被排序?

0 投票
1 回答
240 浏览

python - Python集合模块中大写的意义?

collectionsPython模块中类的大写实践有什么意义吗?特别是,我发现OrderedDict使用 CamelCase 而defaultdict都是小写字母令人费解。我的假设是他们都会使用 CamelCase,因为它们都是类。

在此处输入图像描述

0 投票
1 回答
82 浏览

python - 使用显示为十六进制的整数双端队列构建字符串

我有一个充满整数的双端队列,我想以十六进制格式构建一个字符串(或只是打印它)。

我试过

它说 deque 不能解释为整数。我想要类似的东西:

0 投票
1 回答
255 浏览

python - Python - 计算列表中字符串的词频,列表中的词数不同

我正在尝试创建一个程序,该程序通过心理健康术语列表运行,查看研究摘要,并计算单词或短语出现的次数。我可以用单个单词来解决这个问题,但我很难用多个单词来做到这一点。我也尝试使用 NLTK ngram,但由于心理健康列表中的单词数量各不相同(即,并非心理健康列表中的所有术语都是二元组或三元组),我也无法让它发挥作用。

我想强调一下,我知道拆分每个单词只会计算单个单词,但是,我只是坚持如何处理列表中不同数量的单词以计入摘要。

谢谢!

在我的示例中,两个摘要都计数为 1,但我想要计数为 2。