【发布时间】:2016-11-05 02:27:37
【问题描述】:
我正在从雷达接收不同联系人的数据。每个联系人都有一个纬度、经度、方向、范围和时间戳。并且每次点击一个联系人都会被标识,例如 1,2,3 等。对于一个联系人,这表明随着时间的推移会出现字典。因此,我的一位联系人的字典将如下所示:
{1:[data @ t1], 2:[data @ t2], 3:[data @ t3]}
随着时间的推移,字典会填满,直到……但不会只有一个联系人。会有几个,也许很多。这表明了字典的字典:
{'SSHornblower': {1:[data], 2:[data], 3:[data]},
'Lustania': {1:[], 2:[], 3:[]},
'Queen Mary': {1:[], 2:[], 3:[], 4:[]}}
不可能事先知道我的雷达会找到多少个联系人,可能是 3 个,也可能是 300 个。我无法提前为所有可能的联系人和所有可能的字典的名字想出名字。因此,我想出了一个想法,一旦我将字典嵌套在更大的字典中,我就可以清除它并重新开始新的联系人。但是当我将一个嵌套在另一个中之后进行清除时,它会清除更大字典中的所有内容!有没有办法解决这个问题?
【问题讨论】:
-
到目前为止你有什么代码?您还可以格式化您的代码/数据吗?那段文字很碍眼。
-
你需要字典的 O(1) 访问时间吗?如果没有,您可以将联系人存储在列表中。如果您确实需要一本字典,那么您将需要一个系统来为未知联系人分配有保证的唯一标识符(可能是整数 --- 不要假设名称是唯一的)。 (另外,考虑使用列表或
collections.OrderedDict来存储雷达“ping”,因为显然使用一堆带时间戳的数据是按时间顺序对其进行迭代......并且可能会丢弃所有早于 的 ping n 秒。) -
不确定我是否理解您的问题。特别是,你为什么要考虑清理事情。遇到新联系人时不能在主词典中添加一个新条目吗?
标签: python dictionary nested