Python 统计列表中字典值的匹配值,并获取每个字典匹配的最终总计数

Python 统计列表中字典值的匹配值,并获取每个字典匹配的最终总计数,python,Python,我想循环字典列表,并将每个.keys()的.values()与指定字符串匹配 比如说, a = [[{'test': 'find', 'another':'trying'}], [{'test': 'find'}, {'test': 'find'}]] if .values() == "find" 这里是将计数1~的“查找”总数。最后,打印每个列表的最终计数 它将获取所有具有“find”的.values()值,然后计算出现次数,然后打印它 我的代码: count = 0 for x in a

我想循环字典列表,并将每个.keys()的.values()与指定字符串匹配

比如说,

a = [[{'test': 'find', 'another':'trying'}],
[{'test': 'find'},
{'test': 'find'}]]

if .values() == "find"
这里是将计数1~的“查找”总数。最后,打印每个列表的最终计数

它将获取所有具有“find”的.values()值,然后计算出现次数,然后打印它

我的代码:

count = 0
for x in a:
    for xx in x:
        if xx["test"] == "find":
            count += 1
    print(count)
电流输出:

一, 三,

我的预期产出:

一, 二,

说明:

列表[List[Dict]]

当用于列表中的x时,它将在列表中循环列表。所以我们有一份清单

例如,在一个列表中包含两个列表。索引是0和1。索引0只包含1个“find”,因此计数将变为1。索引1包含2个“find”,因此它将使用1和2作为计数,但我希望得到它的最大值,即2。**如果索引1中有5,则计数将为1~5,因此取5作为最大计数***

有办法做到这一点吗


最新问题:重置每个子列表的计数:

max_count = 0  # initialize max here
for x in a:
    count = 0   # reset count here!
    for xx in x:
        if xx["test"] == "find":
            count += 1
    if count > max_count:
        max_count = count
    print(count)
print(max_count)
或更短:

max_count = max(sum(xx['test'] == 'find' for xx in x) for x in a)

重置每个子列表的计数:

max_count = 0  # initialize max here
for x in a:
    count = 0   # reset count here!
    for xx in x:
        if xx["test"] == "find":
            count += 1
    if count > max_count:
        max_count = count
    print(count)
print(max_count)
或更短:

max_count = max(sum(xx['test'] == 'find' for xx in x) for x in a)
通过格式化打印和
.count()

lst = [[j['test'] for j in i] for i in a]
print('{} {}'.format(lst[0].count('find'), lst[1].count('find')))
# 1 2
通过格式化打印和
.count()

lst = [[j['test'] for j in i] for i in a]
print('{} {}'.format(lst[0].count('find'), lst[1].count('find')))
# 1 2

第二个示例只打印2而不是12,对吗?是的,第二个示例只会找到最大计数。第二个示例只打印2而不是12,对吗?是的,第二个示例只会找到最大计数。更新了一个新的,希望有人能帮助我更新了一个新的,希望有人能帮助我,先生。似乎有很多不同的方法来应用它。我很高兴你分享了它,这样我就可以学习了。@初学者当然没问题,很高兴帮助。谢谢你,先生。似乎有很多不同的方法来应用它。我很高兴你能分享它,这样我就可以学习了。@初学者当然没问题,很乐意帮忙