我知道标题听起来很容易。这不是为了完成这项任务。
想象一下以下场景:您正在运行连接,以及一个名为example的列表。您将得到一些具有常数x的数据,始终从1开始,然后再增加,直到连接关闭。您需要一些围绕此数字的数据,并将其存储在该数字位置的列表中。所以example[x-1]
。好的,这解决了基本问题。
这个问题无法解决的问题是,如果连接为您提供了删除以前存储的一些数据的命令,因为它不再需要。让我们说在这一点上,你有10个项目在列表中,你需要删除位置3,5和6.所以现在,例子是7. x现在是11,你插入一些数据,现在{{1 }长度为8.此时,example
。所以现在,我们已经分裂了。
问题是这个。连接将(但不是以设定的顺序)给你一些其他数据。此数据也会与exmaple[x-1] != 11
具有相同的数字,但我们会说它是x
。这个数据需要一起使用(我们只是说y
和x
是为了这个例子需要添加的int,尽管我们真的填写了类中缺少的东西)。但是在数据序列的稍后阶段,你现在不再需要x-1来将2部分数据放在一起。现在的问题是,因为您无法设置y
而始终在example[x]
的{{1}}位置 ,现在无法在运行时匹配x
和example
这两个职位。
我的问题是,在C ++中有什么方法可以做x
,无论位置y
取决于列表中的变化,例如删除项目。如果这是不可能的,那么我将努力计算example[x] = data;
列表的位置公式,以便它始终匹配。
答案 0 :(得分: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