Потенциально очень удобочитаемое решение, хотя, возможно, и с низкой производительностью, будет использовать в качестве ключей элемент с кортежами из 11 элементов:
>>> d[0,1,2,3,4,5,6,7,8,9,0] = [1.0, 0.0, 0.0]
Это также позволяет вам сохранять векторы координат и передавать их как отдельные объекты:
>>> coord = (0,1,2,3,4,5,6,7,8,9,0)
>>> d[coord]
[1.0, 0.0, 0.0]
Вы можете обеспечить целостность ключа, используя свой собственный класс или подкласс dict:
>>> class Space(dict):
>>> def __setitem__(self, key, value):
>>> if len(key) == 11:
>>> dict.__setitem__(self, key, value)
>>> else:
>>> raise IndexError("Keys must be eleven-dimensional vectors.")
Вы можете улучшить производительность, используя собственный класс с тем же интерфейсом __getitem__
/ __setitem__
, но это даже не нужно делать сначала.