比较单个字典中的值 - python



>假设我们有一个包含单词列表的字典:

temp = {"1": "hello", "2": "goodbye", "3": "hello", "4": "goodbye", "5": "hi"}

我需要帮助弄清楚如何比较每个键的值。我知道我需要遍历每个,但我无法弄清楚如何将"1"的值与"2"的值进行比较,依此类推。

输出应为:

"1" == "3" "2" == "4" "5" ==

提前谢谢。

您可以执行以下操作。收集每个dict(或defaultdict(lists的所有密钥:

from collections import defaultdict
temp = {"1": "hello", "2": "goodbye", "3": "hello", "4": "goodbye", "5": "hi"}
d = defaultdict(list)
for k, v in temp.items():
    d[v].append(k)
for k in d:
    print ' = '.join(repr(v) for v in d[k])  # repr only necessary to display quotes
    # print ' = '.join(d[k])
'5'
'1' = '3'
'2' = '4'

一种方法是使用 collections 模块中的defaultdict来反转字典(即使其成为旧值类型>指向它的旧键列表(。这可以通过以下方式实现:

from collections import defaultdict
inverted_dict = defaultdict(list)
for k,v in temp.items():
    inverted_dict[v].append(k)

然后旧字典中的每个值都显示为新字典中的一个键,您可以通过迭代inverted_dict并打印列表来打印"相等"键,例如:

for k,v in inverted_dict.items():
    print v

相关内容

  • 没有找到相关文章