比较类型列表的python字典值,看它们是否按顺序匹配
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了比较类型列表的python字典值,看它们是否按顺序匹配,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1402字,纯文字阅读大概需要3分钟。
内容图文
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"]
}
我有一个字典,我想比较每个键的值(类型:列表),看它们是否按顺序存在.所以基本上我试图遍历每个键值对,并将类型列表的值与下一个值进行比较,以查看该列表中的元素是否与该特定顺序匹配.如果我们找到匹配项,我想返回一个匹配列表.
例如:s1值是一个包含元素“a”,“b”,“c”,“d”,“e”的列表,所以我想用相同顺序的元素检查其他值.因此,在这种情况下,将返回键s3,因为值与相同的确切顺序匹配.
s1 value = s3值,因为列表中的元素以相同的顺序匹配.
返回列表将类似[s1:s3],并且应返回多个匹配项.
解决方法:
要查找匹配列表,您可以执行以下操作:
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.)
更新
如果您只想要分组键,可以通过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()))})
内容总结
以上是互联网集市为您收集整理的比较类型列表的python字典值,看它们是否按顺序匹配全部内容,希望文章能够帮你解决比较类型列表的python字典值,看它们是否按顺序匹配所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。