将冻结集附加到字典
Appending frozensets to a dictionary
我正在使用一段代码(用 python 编写)接受以下形式的参数:
restricted_bonds = {
frozenset((0, 10)),
frozenset((3, 14)),
frozenset((5, 6))
}
我有一个形式的元组:
tupl = ((0, 5, 6, 1), (4, 5, 6, 8))
其中,我想创建一个 frozenset,它可以读作:
d = {frozenset((0, 5, 6, 1)),
frozenset((4, 5, 6, 8))
}
想法是可以设置restricted_bonds = d
我尝试了以下几种变体:
for i in tupl:
d[frozenset(i)] = ''
理想的结果是:
d = {frozenset((0, 5, 6, 1)),
frozenset((4, 5, 6, 8))
}
你没有字典。你有 set objects; specifically a set()
object containing frozenset()
objects. These are not artefacts, code has to explicitly make a choice to use these objects. See the section on sets in the Python tutorial.
frozenset()
对象只是不可变的集合;存储在集合中的值必须 可散列 ,并且可散列要求存储的对象是不可变的 (*)。 set()
和 frozenset()
都是 built-in 类型,就像 str
和 list
和 tuple
一样,你可以直接使用它们而不需要导入。
只需使用 set.add()
method to add individual values, and set.update()
或 |=
扩充赋值即可将更多元素添加到您的集合中。
如果您只想从任意数量的元组创建一个新集合,请使用集合推导(在本教程的同一部分中提到):
tupl = ((0, 5, 6, 1), (4, 5, 6, 8))
d = {frozenset(t) for t in tupl}
(*):准确的说:用来判断是否相等的对象的状态也必须用来判断hash(相等的对象必须有相同的hash ),并且哈希值必须保持稳定。可以随意更改与不用于确定相等性的对象关联的其他属性。
我正在使用一段代码(用 python 编写)接受以下形式的参数:
restricted_bonds = {
frozenset((0, 10)),
frozenset((3, 14)),
frozenset((5, 6))
}
我有一个形式的元组:
tupl = ((0, 5, 6, 1), (4, 5, 6, 8))
其中,我想创建一个 frozenset,它可以读作:
d = {frozenset((0, 5, 6, 1)),
frozenset((4, 5, 6, 8))
}
想法是可以设置restricted_bonds = d
我尝试了以下几种变体:
for i in tupl:
d[frozenset(i)] = ''
理想的结果是:
d = {frozenset((0, 5, 6, 1)),
frozenset((4, 5, 6, 8))
}
你没有字典。你有 set objects; specifically a set()
object containing frozenset()
objects. These are not artefacts, code has to explicitly make a choice to use these objects. See the section on sets in the Python tutorial.
frozenset()
对象只是不可变的集合;存储在集合中的值必须 可散列 ,并且可散列要求存储的对象是不可变的 (*)。 set()
和 frozenset()
都是 built-in 类型,就像 str
和 list
和 tuple
一样,你可以直接使用它们而不需要导入。
只需使用 set.add()
method to add individual values, and set.update()
或 |=
扩充赋值即可将更多元素添加到您的集合中。
如果您只想从任意数量的元组创建一个新集合,请使用集合推导(在本教程的同一部分中提到):
tupl = ((0, 5, 6, 1), (4, 5, 6, 8))
d = {frozenset(t) for t in tupl}
(*):准确的说:用来判断是否相等的对象的状态也必须用来判断hash(相等的对象必须有相同的hash ),并且哈希值必须保持稳定。可以随意更改与不用于确定相等性的对象关联的其他属性。