假設我有這張表,它有 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 索引一樣。
uj5u.com熱心網友回復:
您可以使用字典,其中鍵是 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)預期的查找時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/477611.html
標籤:Python python-3.x 搜索
上一篇:資料框列上的連接值,不包括NaN
