假设这个表有3列,如下所示。我可以制作一个值列表,并简单地遍历每一行,但如果有很多数据,这对我的新手来说似乎效率低下,而且如果应用于大型项目,它似乎无法扩展:
array = [
['a', 'x', 100],
['a', 'y', 200],
['a', 'z', 300],
['b', 'x', 150],
['b', 'y', 1000],
['b', 'z', 50],
['c', 'x', 790],
['c', 'y', 456],
['c', 'z', 500]
]
我在考虑使用嵌套字典,它看起来更有效率,但不完全可扩展:
table = {
'a': {'x': '100', 'y': '200', 'z': '300'},
'b': {'x': '150', 'y': '1000', 'z': '50'},
'c': {'x': '790', 'y': '456', 'z': '500'}
}
是否有更有效的方法来搜索这些值?比如基于两列的SQL索引。
可以使用键为2元组,值为整数的字典:
{(fst, snd): thrd for fst, snd, thrd in array}
这个输出:
{
('a', 'x'): 100,
('a', 'y'): 200,
('a', 'z'): 300,
('b', 'x'): 150,
('b', 'y'): 1000,
('b', 'z'): 50,
('c', 'x'): 790,
('c', 'y'): 456,
('c', 'z'): 500
}
允许O(1)
期望查找时间