问题标签 [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 - 如何将双端队列一分为二
我正在写一些我经常弹出和附加的东西,并认为它适合使用deque
. 但是,在我的代码中的某处,我需要将其一分为deque
二。
考虑deque
d
我想以deque
这种方式拆分
但我得到一个错误
我可以
但这似乎很荒谬,将其重新变成列表只是为了对其进行切片。我错了吗?还是有其他方法?
python - 在有序计数器中打印第一个键值
我正在尝试以与 OrderedCounter 输出中显示的顺序相同的顺序打印出键值对。
我得到以下输出:
有没有办法只能打印出第一个键值对?
我基本上是在尝试打印给定字符串中的第一个重复字符。
python - 如何创建一个类似列表的类,该类允许在可与 py2 和 py3 一起使用的切片上调用包含的对象方法
下面的代码来自 SCons 的代码库。我们正在移植代码,以便它可以与 Python 2.7.x 和 3.x 一起使用。
下面的代码在 python 2.7.x 下运行良好,但是在 python 3.5 下运行失败如下:
python3.5 ~/tmp/blah123.py Traceback(最近一次调用最后):
文件“/home/bdbaddog/tmp/blah123.py”,第 73 行,在 print("stuff:%s"%nl[0:2 ].bar) AttributeError: 'list' 对象没有属性 'bar'
这段代码在某种程度上是 SCons 功能的核心。任何帮助都将受到欢迎。(请参阅此处的原始代码:src/engine/SCons/Util.py)
html - 从 HTML 字符串中删除所有间距
我正在尝试实现删除所有空白和空格字符的代码,然后计算页面中出现的前 3 个字母数字字符。我的问题是双重的。
1)我用于拆分的方法似乎不起作用,我不确定为什么它不起作用。据我所知,加入然后拆分应该从 html 源代码中删除所有空格和空格,但事实并非如此(请参阅下面亚马逊示例的第一个返回值)。
2) 我对 most_common 操作不是很熟悉,当我在“ http://amazon.com ”上测试我的代码时,我得到以下输出:
返回的 most_common(3) 值中的 u 是什么意思?
我当前的代码:
python - 如何使用键初始化 defaultdict?
我有一个列表字典,它应该用默认键初始化。我想,下面的代码不好(我的意思是,它可以工作,但我不觉得它是用pythonic方式编写的):
所以我想使用更多的pythonic,比如defaultict
:
但是,我看到的每个教程都会动态设置新键。但在我的情况下,所有的键都应该从一开始就定义。我正在解析其他数据结构,并且只有当结构中的特定键也包含在我的字典中时,我才会将值添加到我的字典中。
如何设置默认键?
python - 按字母顺序排列具有相同计数的元素
Python CollectionCounter.most_common(n)
方法返回前 n 个元素及其计数。但是,如果两个元素的计数相同,如何返回按字母顺序排序的结果?
例如:对于像:这样的字符串BBBAAACCD
,对于“2-most common”元素,我希望结果是指定的n = 2
:
并不是:
请注意,虽然A
和B
具有相同的频率,但A
在B
结果列表中排在前面,因为它B
按字母顺序排在前面。
我怎样才能做到这一点?
python - 最常见的 2-gram 使用 python
给定一个字符串:
如何找到前 n 个最常见的 2 克?在上面的字符串中,所有 2-gram 都是:
如您所见,2-gramthis is
出现了 2 次。因此结果应该是:
我知道我可以使用Counter.most_common()
方法来查找最常见的元素,但是如何从字符串开始创建一个 2-gram 列表?
python - 按频率对计数器排序,然后在 Python 中按字母顺序排序
我正在尝试使用计数器按出现次数对字母进行排序,并将任何具有相同频率的字母按字母顺序排列,但我无法访问它产生的字典的值。
产生:
我怎样才能让它按频率排序,然后按字母顺序排列,所以只出现一次的所有东西都是按字母顺序排列的?
python - 在 Python 中限制计数器集合
我目前正在从 Web API 中提取数据,并且正在尝试根据以下条件过滤一些值:计算用户在两个给定日期之间出现的次数,但前提是他/她购买了树莓派、香蕉派等物品和树莓派2,而不是树莓派3
我收到的 JSON 对象具有以下结构:
目前我有以下代码计算用户在给定两个日期时出现的次数。
我的方法是添加一些额外的“条件”来计算除树莓派 pi3 之外的所有项目,例如:
但是如果我这样做,那么我会遇到错误bool object is not iterable并且我假设我收到了这个错误,因为集合 Counter 不允许我这样做。
我的问题是:
我怎样才能在列表中实现这个额外的条件,以便我可以计算除 raspberry pi3 之外由一个用户购买的所有项目?
目前,我正在计算为特定用户购买的商品,但我如何计算所有用户购买的所有商品?
欢迎所有评论,答案和建议。
更新
对于问题 1,解决方案是在括号中解决问题。
python - 从 collections.Counter 继承:'fromkeys' 是抽象的
我有一个继承自的python类collections.Counter
:
当我在这段代码上使用 pylint 时,它的答案是:
W:方法“fromkeys”在“Counter”类中是抽象的,但未被覆盖(抽象方法)
我检查了collections.Counter
在我的机器上的实现,并且有效地,这个方法没有实现(并且评论有助于理解为什么):
但是,我真的不知道如何实现这个方法,如果Counter
它本身没有......</p>
在这种情况下解决此警告的方法是什么?