在 Python 中,您可以有一个由两个字符串的元组索引的 dict,例如
>>> d = {}
>>> d["foo","bar"] = 10
>>> d
{('foo', 'bar'): 10}
我不确定“强制非锯齿状”对您意味着什么,但您可以使用 defaultdict 为尚未明确设置的条目返回默认值,或者使用已知值初始化 dict:
>>> xkeys = "abcdef"
>>> ykeys = "xyz"
>>> d = dict(((x,y), 0) for x in xkeys for y in ykeys)
>>> d
{('b', 'y'): 0, ('a', 'z'): 0, ('b', 'x'): 0, ('e', 'y'): 0, ('a', 'x'): 0, ('f', 'z'): 0, ('a', 'y'): 0, ('f', 'y'): 0, ('d', 'y'): 0, ('f', 'x'): 0, ('d', 'x'): 0, ('e', 'x'): 0, ('e', 'z'): 0, ('c', 'x'): 0, ('d', 'z'): 0, ('c', 'y'): 0, ('c', 'z'): 0, ('b', 'z'): 0}
如果您想强制只允许已知集合中的键,那么我建议对 dict 进行子类化以添加验证。