【发布时间】:2012-10-15 23:48:44
【问题描述】:
在 Python 中,我目前有一个带有复合键的字典。在这本词典中,这些键多次出现。 (键以逗号分隔):
(A,B), (A,C), (A,B), (A,D), (C,A), (A,B), (C,A), (C,B), (C,B)
我已经有一些东西可以汇总唯一出现的次数并计算重复次数,这给了我一个类似于这样的打印输出:
(A,B) 计数为4、(A,C) 计数为2、(B,C) 计数为6 等
我想知道如何编写一个循环来获得以下信息:
打印出键的第一部分的第一次出现及其关联的值和计数。
姓名:A:
Type Count
B 4
C 2
Total 6
姓名:B:
Type Count
A 3
B 2
C 3
Total 8
我知道我需要在 first statement = the first statement 的位置创建一个循环并执行以下操作,但不知道如何处理/编码。
【问题讨论】:
-
你怎么能有一个字典多次使用相同的键(例如
(A,B))? -
它来自一个列表列表,该列表基本上来自一个巨大的文本文件。我必须在哪里寻找某些值并找到与它们相关的值。对于字典的多次出现,我基本上将发现的每个出现的值 V 增加 1。如果它没有找到该值,它将创建一个新值并将其设置为 1。抱歉,我不清楚。意思是说我基本上增加了原始列表中每个重复项的值。 Dictionary 是所有唯一条目,但每个条目的 Value V 表示在原始列表中找到的次数。
-
@Alok:我认为 OP 的意思是他有一个带有
(A,B)的集合,等等。然后,他使用collections.Counter将所述集合处理成一个字典,大概 -
嗯,
(A,B)样式的键是字符串还是元组?如果它们真的是字符串,我的回答可能不正确(尽管修改解包以获取正确的子字符串很容易)。 -
@Blackknght 我认为它们最初是字符串。我最初通过一个文件来查找与模式匹配的东西。然后,我从与我正在搜索的内容匹配的每一行中提取两个值(键中的值)。它基本上是一个包含 IP 源地址和目标地址以及使用的相关协议的文件。
标签: python loops dictionary unique