【问题标题】:python insert into list at constant x positionpython在恒定x位置插入列表
【发布时间】:2013-11-04 23:12:45
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 是的,让它成为一个字典而不是一个列表......
  • 或者,OP 可以将项目重新分配给None 而不是删除
  • @JoranBeasley 你的评论澄清了一个问题,我完全迷失在第三段
  • 如果你运行这个东西 30 天,我会说这对于 ram 的使用效率很低。
  • 什么?单元格表是什么意思?

标签: python list position constants


【解决方案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

【讨论】:

  • 第一个,并且保证无论我们从 example 中取出什么内容,该声明将始终正确,以供以后在运行时参考。
  • 我不明白你的评论......但可以肯定
  • @cellsheet 这可能有点矫枉过正(但您确实提到了运行 30 天),但您始终可以使用 redis.io,它的优点是可以在 Python 进程之外访问,快速键外观和删除,一些方便的基本结构,如果您希望密钥在一段时间后到期......
  • 是的,对不起我的啰嗦。但是如果您运行该代码,example[99] 不会为空,因为根据我之前的经验,它会将其移动到example[2]
  • 嗯不......这是字典键......他们留下......虽然是一个快速警告......字典没有顺序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 1970-01-01
  • 2014-03-23
相关资源
最近更新 更多