0

我知道这听起来很容易。不是为了这个任务。

想象一下以下场景:您有一个正在运行的连接,以及一个名为 example 的列表。你会得到一些带有常数 x 的数据,它总是从 1 开始,然后一直增加,直到连接关闭。您需要一些围绕该数字的数据,并将其存储在该数字位置的列表中。所以example[x-1]。好的,这样就解决了基本问题。

这不能解决的问题是,如果连接给了你一个命令来删除以前存储的一些数据,因为它不再需要了。假设此时列表中有 10 个项目,您需要在位置 3、5 和 6 处删除。所以现在,示例在 7。x 现在是 11,您插入一些数据,现在example的长度为 8。此时,exmaple[x-1] != 11。所以现在,我们有碎片。

问题是这样的。该连接将(但不是按固定顺序)为您提供一些其他数据。该数据也将具有与 相同的数字x,但我们会说它是y。这些数据需要放在一起(我们只是说为了这个示例的目的需要添加的 int,尽管我们实际上是在填充一个类中缺少的东西)xy但在数据序列的稍后点,但您现在不再有 x-1 将数据的 2 部分放在一起。现在的问题是,因为您无法设置example[x]并且始终将其完全放在位置xin example,所以现在在运行时无法同时匹配位置xy

我的问题是,有没有像 C++ 中的某种方式,你可以怎么做example[x] = data;,无论位置如何,x取决于列表中发生的变化,例如删除项目。如果这不可能,那么我将努力计算example列表位置的公式,以便它始终可以匹配。

4

1 回答 1

1
example = {}
example[1] = "whatever"
example[99] = "whatever"
example[-12] = "something else"
example['cow'] = 'pie'
#delete
example.pop(99)

那是你要找的吗?

或者

example = [0 for _ in range(MAX_ITEMS)]
#delete
example[x-1] = 0
#add
example[x-1] = data
于 2013-11-04T23:16:35.870 回答