我有n个成员{1,...,n}的有限集合的子集,每个子集的成员具有需要存储的对应值(取决于它们来自哪个子集)。
一个人可以将其视为一个2D数组,其中一个轴是子集,另一个轴是成员1,...,n。
要执行查找:
x是{1,...,n}的子集,y是{1,...,n}的元素
输入:(x,y)
输出:与(x,y)对应的值
在Python中,我想出了一个使用字典的实现。例如,“ A”是字典的字典。对于冻结集x(因为它必须是不可变的,所以冻结),A [x]是一个字典,其中的键= x的成员,值=(x,y)的数据。 A [x] [y] =为(x,y)存储的数据。
有人有更优雅的实现方式吗?还是有一种更传统的方法?
编辑: 示例:
# n = 2
A = dict()
A[frozenset({1})] = {1: f(frozenset({1}), 1)}
A[frozenset({2})] = {2: f(frozenset({2}), 2)}
A[frozenset({1, 2})] = {1: f(frozenset({1, 2}), 1), 2: f(frozenset({1, 2}), 2)}
A[frozenset({1, 2})][2] = f(frozenset({1, 2}), 2)