Python:识别不同字典键中的重复值

3
以下是字典示例:
ActivePython 3.1.2.3(ActiveState Software Inc.)基于
Python 3.1.2(r312:79147,Mar 22 2010,12:20:29)[MSC v.1500 32 bit(Intel)] on win32
键入“help”,“copyright”,“credits”或“license”以获取更多信息。
>>> dict = {}
>>> dict [(“127.0.0.1”,“127.0.0.2”)] = [“value”,“value2”,“value3”]
>>> dict [(“127.0.0.1”,“127.0.0.3”)] = [“value”,“value2”,“value3”]
>>> dict [(“127.0.0.1”,“127.0.0.4”)] = [“value1”,“value2”,“value3”]

有人知道一种干净、健壮的方法来返回值相同但类型不同的字典键列表吗?

在上面的示例中,前两个条目具有不同的键但相同的值。我正在寻找一种干净的方法来获取这两个键的列表。

1个回答

3

将列表转换为元组。

根据您在帖子中提供的示例 countMap (如果它仍然与您相关):

countMap = {}
for k, v in dict.items():
    v = tuple(v)
    countMap[v] = countMap.get(v,0) + 1

但是,请不要将您的变量命名为dict,因为这是Python类型的名称。

其他解决方案:

index = {}
for k, v in dict.items():
    v = tuple(v)
    index[v] = index.get(v, []) + [k]

或者使用defaultdict更简洁:

from collections import defaultdict

index = defaultdict(list)
for k, v in dict.items():
    index[tuple(v)].append(k)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接