问题标签 [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 投票
3 回答
69 浏览

python - 检索集合的输入。计数器输出

不确定标题是否正确,但。

假设您有一个看起来像 Counter 对象的输出的列表。

我怎么能回去得到原来的名单,因为

0 投票
2 回答
388 浏览

python - 子类化文件对象以将其“伪造”为可迭代 - Python

我的想法是摆脱用户不断使用seek(0)来重置文本文件读取的方式。

所以相反,我尝试创建一个MyReadercollections.Iterator然后使用.reset()替换seek(0),然后它通过保留一个self.iterable对象从上次产生的位置继续。

用法类似于:

我的问题是这是否已经存在于 Python-verse 的某个地方?特别是。如果已经有一个本地对象可以做这样的事情,我想避免重新发明轮子=)

如果不存在?这个对象看起来有点不合常理吗?因为它说它是一个迭代器,但真正的迭代器实际上是self.iterable并且其他函数围绕它进行“重置”。

0 投票
1 回答
660 浏览

python - Pandas itertuples 没有按预期命名元组?

使用 Pandas 文档中的这个页面,我想将 CSV 读入数据框,然后将该数据框转换为命名元组的列表。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.itertuples.html?highlight=itertuples

我运行了下面的代码...

...并且返回的类型是pandas.core.frame.Synonym,而不是命名元组。这是它应该如何工作,还是我做错了什么?

我的 CSV 数据只是两列数据:

例如。

0 投票
2 回答
3188 浏览

python - Python 将 Counter 追加到 Counter,如 Python 字典更新

我有 2 个计数器(集合中的计数器),我想将一个附加到另一个,而第一个计数器的重叠键将被忽略。像dic.update(python 字典更新)

例如:

所以像(忽略第一个计数器的重叠键):

我想我总是可以将其转换为某种字典,然后将其转换回 Counter,或使用条件。但我想知道是否有更好的选择,因为我在一个相当大的数据集上使用它。

0 投票
1 回答
93 浏览

python - 向字典添加键时调用哪个方法?

我想继承OrderedDict类来设置字典的最大长度。

我做了:

但是现在我看不到要覆盖哪个函数来捕获“添加键”事件。我谷歌了一段时间没有找到答案。即使是特殊功能也不是一个明确的答案。

0 投票
0 回答
706 浏览

python - 嵌套的默认字典:TypeError:第一个参数必须是可调用的或无

Trueing 创建嵌套defaultdict以避免编写冗长的代码。

最终defaultdict应该是这样的:

但是当我尝试将项目附加到列表中时,它会返回TypeError

----> 1 dd = defaultdict(lambda: defaultdict(lambda: defaultdict([])))

你知道问题出在哪里吗?

0 投票
2 回答
6869 浏览

python - Python Counter() 函数用于计算文档中出现一次以上的单词

我正在开发一个 NLP(自然语言处理)项目,我在其中使用了集合库中的 Python Counter() 函数。我得到以下形式的结果:

输出

问题是,我想提取计数大于 1 的单词。换句话说,我试图只获取计数大于 1 或 2 的单词。

我想在减少低频词后使用输出来制作词汇表。

PS:我有 100 多个文档来测试我的数据,其中包含近 2000 个不同的单词。

PPS:我已经尝试了一切以获得结果,但无法做到。我只需要一个逻辑,就能实现。

0 投票
2 回答
47 浏览

python - 允许重复的计数器

我有一个交通灯枚举定义可能的状态:

我每秒轮询一个红绿灯以获取当前状态,然后deque使用此函数将值放入 a 中:

我想对相同状态的序列进行分组,以学习红绿灯相位计时。

我尝试使用Counterclass of collections,如下所示:

它对不同的状态进行了很好的分组,但我不知道下一个周期何时开始。是否有类似Counter的允许重复的数据结构?所以我可以得到如下结果:

而不是:计数器({'RED':30,'GREEN':30,'YELLOW':9 })

0 投票
0 回答
28 浏览

python - 记录类实现集合接口的正确方法?

假设我有一个实现 Sequence 接口的类,即 has__len____getitem__方法,那么推荐的记录方式是什么?类文档字符串中的非正式描述是否足够,我应该子类化collections.abc.Sequence还是完全做其他事情?

0 投票
1 回答
313 浏览

python - 在 Python 中为循环的简写添加参数

很抱歉我无法为我的问题提供更好的标题。我对 Python 编程非常陌生,我必须对应用程序中的现有代码进行一些小改动。当前的 python 代码读取 Excel 工作表中的每一行和每一列,并将其原样存储在数据库中名为“Commits”的表中。我们使用的数据库是 SQL Lite,我们使用的 Python 库是 sqlite3.py 在现有代码中,只有 6 列插入到数据库中,因为它来自 excel 表。以下是它的代码:-

在上面的代码中,persistjenkinsdata 是一个简单地将插入查询传递给数据库以插入数据集的函数。

以下是 csvrowgenerator 的代码:-

现在我的要求是,在读取 excel 表中的每一列时,我们必须将第二列作为输入传递给 Select Join 查询,该查询将返回一组两列,并且每列值需要在上述短集合中传递在将其插入数据库之前将其传递给循环。

我编写了一个函数,该函数在从 DB 获取值后返回相应的值,当我传递静态输入时,该函数正确返回输出。但我不知道如何将输入从上述 for 循环动态传递给该函数。如何更改以下代码行以包含另外两个要传递到数据集中的参数。我需要如下:- return [(jenkinsentry[0], jenkinsentry[1], jenkinsentry[3],jenkinsentry[2],jenkinsentry[4],jenkinsentry[5],str(dateparser.parse(jenkinsentry[6] ],ignoretz=True)),jenkinsentry[7], {Value-1 从 DB 返回,输入是 jenkinsentry[2]},{Value-2 从 DB 返回,输入是 jenkinsentry[2]}) 用于 csvrowgenerator 中的 jenkinsentry (文件路径)]

我对python很陌生,所以我不知道如何更改这个循环的简写来相应地更改集合。我尝试了以下方法:-

但是上面的代码只运行一次,不会遍历行中的所有项目。当我尝试使用产量而不是回报时。它在以下行中给出错误:- jenkinsdataset = list(chain.from_iterable(jenkinsdataset_lists))

下面是从我的 For 循环代码返回的 print 语句的输出:-

jenkins 数据集.. 第一项.... [['922', 'sdsadad', 'Test Suite Hook s', 'Test Suite Hooks', '', '', '2018-05-23 01:00: 00','通过','无','无']]

以下是如何使用“return [(jenkinsentry[0],jenkinsentry[1],jenkinsentry[3],jenkinsentry[2],jenkinsentry[4],jenkinsentry[5],str(dateparser .parse(jenkinsentry[6],ignoretz=True)),jenkinsentry[7]) for jenkinsentry in csvrowgenerator(filepath)]"

jenkins 数据集.. 第一项.... [[('922', 'sdsadad', 'Test Suite Hooks', 'Test Suite Hooks', '', '', '2018-05-23 01:00: 00', 'pass', '', ''), ('922', 'sdsadad', 'abc/ssdsd', 'Quebjhfghjhdg aeuyruyiyd', '', '', '2018-05-23 01:00: 00', 'pass', '', ''), ('922', 'sdsadad', 'abc/ssdsd', 'Quebjhfghjhdg aeuyruyiyd', '', '', '2018-05-23 01:00: 00', '通过', '', '')]]

请帮助我形成一个集合,该集合从现有的 for 循环中获取输入并正确解析为 list(chain.from_iterable(jenkinsdataset_lists))