2024-04-27 04:01:38 发布
网友
假设我有“username1”和“username2”
如何将这两个用户名组合在一起以生成唯一值
如果先输入username2,则无论它们如何组合,值都应相同,反之亦然。两个名称应始终组合成相同的唯一值。字符串长度将不起作用,因为其他用户名可以具有相同的长度
有没有一种简单的方法或技巧
有许多方法可以生成唯一的值。一种常见的(sysops)方法是从大多数主要语言提供的例程中获取UNIX UUID(通用唯一标识符)的方法。如果出现解析问题,请使用输入字符串中未出现的分隔符
如果用变量替换我的常量字符串“username1”和“username2”,我相信问题已经解决了
import uuid unique_sep = '|' # I posit vertical bar as not appearing in any user name import uuid unique_ID = uuid.uuid5(uuid.NAMESPACE_X500, "username1" + unique_sep + "username2") print(unique_ID)
输出:
b2106742-94f5-596d-a461-c977b5982d85
要保留条目顺序的唯一性,只需以任何方便的方式对其进行排序,例如:
names_in = [username1, username2] unique_ID = uuid.uuid5(uuid.NAMESPACE_X500, min(names_in) + unique_sep + max(names_in))
集合是无序的,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")])
有许多方法可以生成唯一的值。一种常见的(sysops)方法是从大多数主要语言提供的例程中获取UNIX UUID(通用唯一标识符)的方法。如果出现解析问题,请使用输入字符串中未出现的分隔符
如果用变量替换我的常量字符串“username1”和“username2”,我相信问题已经解决了
输出:
要保留条目顺序的唯一性,只需以任何方便的方式对其进行排序,例如:
集合是无序的,Python有一个可散列的不可变集合类型,假设您对唯一键的要求是它可以用作dict键:
还可以创建已排序的元组:
相关问题 更多 >
编程相关推荐