【发布时间】:2019-07-12 11:55:46
【问题描述】:
我正在处理一段代码(用 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))
}
【问题讨论】:
-
你没有字典,你有一个集合。
-
frozenset不是“人工制品”,它是内置的,在这种情况下可能选择它是因为它是可散列的(与set不同),因此可以插入到set或用作dict键 -
@MartijnPieters,我现在已按照建议将 set 重命名为 freezeset。
-
@Wychh:虽然这不是一个有用的编辑。您的预期输出不是frozenset 本身,而是一个常规(可变)
set()对象。
标签: python python-3.x set frozenset