第一个问题,所以我会正确的:
使用python 2.7
我有一个项目字典,键是一个x,y坐标,表示为元组:(x,y),所有值都是布尔值.
我试图找出一种快速而简洁的方法来计算有多少项具有给定值.我不需要知道哪些键具有给定值,只需要知道多少.
这里有一个类似的帖子: 字典中有多少项在Python中共享相同的值,但是我不需要返回字典,只需要一个整数.
我的第一个想法是迭代项目并测试每个项目,同时保持每个True值的计数.我只是想知道,因为我仍然是python的新手并且不了解所有的库,如果有更好/更快/更简单的方法来做到这一点.
提前致谢.
阅读如何super()工作,我遇到了关于如何创建有序计数器的这个方法:
from collections import Counter, OrderedDict
class OrderedCounter(Counter, OrderedDict):
'Counter that remembers the order elements are first seen'
def __repr__(self):
return '%s(%r)' % (self.__class__.__name__,
OrderedDict(self))
def __reduce__(self):
return self.__class__, (OrderedDict(self),)
Run Code Online (Sandbox Code Playgroud)
例如:
oc = OrderedCounter('adddddbracadabra')
print(oc)
OrderedCounter(OrderedDict([('a', 5), ('d', 6), ('b', 2), ('r', 2), ('c', 1)]))
Run Code Online (Sandbox Code Playgroud)
有人能够解释这是如何神奇地起作用的吗?
这也出现在Python文档中.
如果我有这样的事情:
D = {'a': 97, 'c': 0 , 'b':0,'e': 94, 'r': 97 , 'g':0}
Run Code Online (Sandbox Code Playgroud)
如果我想要例如将"0"的出现次数计算为一个值而不必迭代整个列表,那么这是否可能?如何?
有没有办法看到字典中有多少项在Python中共享相同的值?
假设我有一个字典,如:
{"a": 600, "b": 75, "c": 75, "d": 90}
Run Code Online (Sandbox Code Playgroud)
我想得到一个结果字典,如:
{600: 1, 75: 2, 90: 1}
Run Code Online (Sandbox Code Playgroud)
我的第一个天真的尝试是只使用嵌套for循环,然后对于每个值,我将再次迭代字典.有一个更好的方法吗?
我有一本字典如下.
dictA = {
'a' : ('duck','duck','goose'),
'b' : ('goose','goose'),
'c' : ('duck','duck','duck'),
'd' : ('goose'),
'e' : ('duck','duck')
}
Run Code Online (Sandbox Code Playgroud)
我希望循环遍历dictA并输出一个列表,它将显示dictA中具有多个"duck"值的键.
例如,对于dictA,此函数将输出以下列表.
list = ['a', 'c', 'e']
Run Code Online (Sandbox Code Playgroud)
我确信有一种简单的方法可以做到这一点,但我是Python的新手,这让我很难过.
我很熟悉如何返回value_counts从pd.Series。但是,如何从字典的值中获取值计数?
假设我在字典中有以下元组L:
L = {1: (13600, 14797),
2: (14700, 14700),
3: (14700, 10400),
4: (14600, 17200),
5: (13600, 14797),
6: (14600, 17200),
7: (14700, 10400),
8: (14700, 10400),
9: (12800, 14770)}
Run Code Online (Sandbox Code Playgroud)
我如何获得value_counts来自L这将是这样的:
(14700, 10400) 3
(13600, 14797) 2
(14600, 17200) 2
(14700, 14700) 1
(12800, 14770) 1
Run Code Online (Sandbox Code Playgroud)
到目前为止,这就是我所拥有的。但是,我认为字典键1-9妨碍了操作,因为出现错误list object is not callable.
list = [(k, v) for k, v in L.items()]
S = set(L)
F = {}
for i …Run Code Online (Sandbox Code Playgroud)