首页 > 解决方案 > 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)

标签: pythonarraysdictionaryunordered

解决方案


推荐阅读