【发布时间】:2017-05-03 12:03:35
【问题描述】:
我正在使用 Python 3
我有一块板子,里面有我必须存储的单元格,每个单元格都有一个坐标,需要存储 3 个值。我使用了一个字典,其中键等于单元格的坐标,值是存储所需值的 3 个元素的列表。 当板子变大并且存储了很多键/值对时,获取和读取这些值会很快吗? 或者在速度方面还有什么其他方法更有效?
亚历克斯
编辑:
每个单元格需要的 3 个值是零或一。我有一个包含棋盘尺寸的元组,一个包含所有应具有值 1 作为第一个值的单元格位置的元组,一个包含所有应具有值 1 作为第二个值的单元格位置的frozenset值和一个元组,该元组包含所有应具有值 1 作为第三个值的单元格位置:
tuple1 是一个包含元组的元组,每个元组代表第一个值为 1 的单元格的位置,frozenset 包含的元组每个代表第二个值为 1 的单元格的位置,tuple2 包含的元组每个代表第三个值为 1 的单元格的位置(在列表中)
代码:
board = {}
for row in range(dimension[0]):
for col in range(dimension[1]):
board[(row,col)] = [0,0,0] #default
for x in tuple1:
board[x][0] = 1
for x in frozenset:
board[x][1] = 1
for x in tuple2:
board[x][2] = 1
return board
现在查找键和值会很快吗?
EDIT2:这是建立这样一个字典的最快方法吗?
【问题讨论】:
-
显示代码(一个小例子)
-
你的意思是你会做类似
board[(x,y,z)] = [a,b,c]的事情吗? -
我用代码编辑了帖子,我确实在做这样的事情!
-
这取决于应用程序的范围和用途,例如,如果它变得很大,您将希望使用数据库研究持久存储。对于小型应用程序,您的方法可能没问题,但就像我说的 - 这取决于。
-
比较小,dict里面最多有2400个key/value对
标签: python list dictionary