首页 > 解决方案 > 如何从 2 个字符串生成唯一键?

问题描述

假设我有“username1”和“username2”

如何将这两个用户名组合在一起以生成唯一值?

如果首先输入 username2,则无论它们如何组合,该值都应该相同,反之亦然,这两个名称应该始终组合成相同的唯一值。字符串长度不起作用,因为其他用户名可以具有相同的长度。

有没有一种简单的方法来做到这一点或一种技术?

标签: python

解决方案


集合是无序的,并且 Python 具有可散列的不可变集合类型,假设您对唯一键的要求是它可以用作 dict 键:

def key(a, b):
    return frozenset([a, b])

d = {}
d[key("foo", "bar")] = "baz"
print(d[key("bar", "foo")])

您还可以创建一个排序的元组:

def key(a, b):
    return tuple(sorted([a, b]))

d = {}
d[key("foo", "bar")] = "baz"
print(d[key("bar", "foo")])

推荐阅读