作者:陈翔_是学长 | 来源:互联网 | 2022-11-23 18:02
1> finefoot..:
要查找匹配列表,您可以执行以下操作:
prefs = {
's1': ["a", "b", "c", "d", "e"],
's2': ["c", "d", "e", "a", "b"],
's3': ["a", "b", "c", "d", "e"],
's4': ["c", "d", "e", "b", "e"],
's5': ["c", "d", "e", "b", "e"]
}
matches = {}
for key, value in prefs.items():
value = tuple(value)
if value not in matches:
matches[value] = []
matches[value].append(key)
print(matches)
哪个印刷品:
{('a', 'b', 'c', 'd', 'e'): ['s1', 's3'], ('c', 'd', 'e', 'b', 'e'): ['s5', 's4'], ('c', 'd', 'e', 'a', 'b'): ['s2']}
(注意:我加入s5
了prefs
.)
更新
如果您只想要分组键,可以通过matches.values()
以下方式访问它们:
print(*matches.values())
哪个印刷品:
['s4', 's5'] ['s1', 's3'] ['s2']
此外,如果您需要,您可以在一行中完成所有操作:
print({value: [key for key in prefs if tuple(prefs[key]) == value] for value in set(map(tuple, prefs.values()))})