Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列表字典中的Python项计数_Python_List_Dictionary - Fatal编程技术网

列表字典中的Python项计数

列表字典中的Python项计数,python,list,dictionary,Python,List,Dictionary,我有一个列表字典,我想为它添加一个特定列表的值。。。 我有下面的列表词典 d = {'a': [4,'Adam', 2], 'b': [3,'John', 4], 'c': [4,'Adam', 3], 'd': [4,'Bill' 3], 'e': [4,'Bob'], 'f': [4, 'Joe'], 'g': [4, 'Bill']} 我想算出姓名的数量,然后返回。所以在这种情况下,它会是这样的 Adam: 2 Bill: 2 John: 1 Bob: 1 Joe: 1 为了简化操作,

我有一个列表字典,我想为它添加一个特定列表的值。。。 我有下面的列表词典

d = {'a': [4,'Adam', 2], 'b': [3,'John', 4], 'c': [4,'Adam', 3], 'd': [4,'Bill' 3], 'e': [4,'Bob'], 'f': [4, 'Joe'], 'g': [4, 'Bill']}
我想算出姓名的数量,然后返回。所以在这种情况下,它会是这样的

Adam: 2
Bill: 2
John: 1
Bob: 1
Joe: 1
为了简化操作,所有名称都是列表中的第二个元素或

for i in d:
     d[i][1]
你知道我怎样才能有效地做到这一点吗?我现在只是手动检查每个名字,计算并返回=/

提前谢谢

对计算事物总是有好处的

>>> from collections import Counter
>>> d = {'a': [4,'Adam', 2], 'b': [3,'John', 4], 'c': [4,'Adam', 3], 'd': [4,'Bill', 3], 'e': [4,'Bob'], 'f': [4, 'Joe'], 'g': [4, 'Bill']}
>>> # create a list of only the values you want to count,
>>> # and pass to Counter()
>>> c = Counter([values[1] for values in d.itervalues()])
>>> c
Counter({'Adam': 2, 'Bill': 2, 'Bob': 1, 'John': 1, 'Joe': 1})

这段代码比前面的答案长,但这只是产生相同结果的另一种方法。不管怎样,
temp\u dict
将根据显示的次数将名称存储为键和值。

看起来不错!有没有办法删除“计数器”部分并返回带有数字的列表?它已经是一个类似字典的对象,但你可以用dict(c)将它变成一个纯字典。如果它不仅位于1位置,那么如果它必须由i[x]访问,其中x是元素所在的某个位置,会发生什么?如果遍历所有d.itervalues,则值[x]似乎不起作用
d = {'key': 'value'}
temp_dict = {}
for key, values in d.items():
    if values[1] in temp_dict:
        temp_dict[values[1]] = temp_dict[values[1]] + 1
    else:
        temp_dict[values[1]] = 1