简而言之,我在一个列表(所有点的列表)中有一个列表(坐标)(与点相关的其他信息)。它需要能够处理数以万计的值,而且速度显然会呈指数级下降,因此理想情况下,最有效的解决方案将是有用的。你知道吗
每次代码运行时,它都会向列表中添加一个新项,因此排序不是一个选项。
我见过有人建议集合,但如果列表不断增长,而我需要的值在主值中,这种方法是否有效?或者我可以考虑使用一个单独的集合来存储坐标作为一个集合,但是增加的内存需求值得额外的速度吗?你知道吗
我目前的做法与此类似:
growingList = [ [[1,0,0],0,0], [[1,1,0],1,0] ]
itemToAdd = [5,7,3]
itemExists = False
for i in range( len(growingList) ):
if itemToAdd == growingList[i][0]:
itemExists = True
break
if itemExists == False:
growingList.append( [itemToAdd, otherValue, otherValue2] )
您有一组唯一的项和关联的数据。您要查找的数据结构是一个字典。以下代码相当于您使用字典的示例:
它绝对不会像你担心的那样以指数级的速度慢下来。平均案例插入时间为常数(O(1))。如果您需要一个列表,那么当您需要它时,您可以很容易地从字典中获得它:
data.items()
。你知道吗相关问题 更多 >
编程相关推荐