Python 如果没有键,如何创建标识一组数字的键,以便检索集合中的一组数字?

Python 如果没有键,如何创建标识一组数字的键,以便检索集合中的一组数字?,python,dictionary,indexing,set,Python,Dictionary,Indexing,Set,我有几组数字。我想把这些集存到字典里。我不知道如何生成一个以独特方式标识集合的密钥。如果我有一个没有键的集合,我想自动为该集合生成一个键,并检查生成的键是否在字典中。您可以使用冻结集作为字典键: d = {frozenset([1, 2, 3]): 'a', frozenset([4, 5, 6]): 'b'} print(d[frozenset([1, 2, 3])]) # 'a' 如果没有一个例子,这很难理解。你可以把数字放在一个冻结集中,或者对它们进行排序,然后把它们放在一个元组中。@

我有几组数字。我想把这些集存到字典里。我不知道如何生成一个以独特方式标识集合的密钥。如果我有一个没有键的集合,我想自动为该集合生成一个键,并检查生成的键是否在字典中。

您可以使用
冻结集
作为字典键:

d = {frozenset([1, 2, 3]): 'a', frozenset([4, 5, 6]): 'b'}
print(d[frozenset([1, 2, 3])])  # 'a'

如果没有一个例子,这很难理解。你可以把数字放在一个冻结集中,或者对它们进行排序,然后把它们放在一个元组中。@AlexHall为什么要对数字进行排序?如果我们想以独特的方式识别集合,是否可以避免对数字进行排序?对一个集合中的数千个数字进行排序非常昂贵。因为元组
(1,2,3)
(1,3,2)
不同。要避免排序,请使用frozenset。在这种情况下,frozenset([1,2,3])等于frozenset([3,2,1])?@nabiltos是的,您可以检查。Frozensets与集合类似,但它们是不可变(冻结)和散列的。