python - Python中具有无序索引的多维数组
问题描述
我有 n 个成员的有限集合 {1, ..., n} 的子集,每个子集的成员都有需要存储的相应值(取决于它们来自哪个子集)。
可以将其视为一个二维数组,其中一个轴是子集,另一个轴是成员 1、...、n。
要执行查找:
x 是 {1, ..., n} 的子集,y 是 {1, ..., n} 的元素
输入:(x,y)
输出:对应于(x,y)的值
在 Python 中,我提出了一个使用字典的实现。例如,'A' 是字典的字典。对于frozenset 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)