将删除的项目放入连续的Python列表中

时间:2014-06-13 17:41:15

标签: python list indexing items

想知道给定列表[0,1,2,3,5,6,7]或[0,2,3,4,5,6,7]或[1,3, 4,5,7,9]并采取当前指数。有人帮忙吗?

3 个答案:

答案 0 :(得分:0)

这是一种查找任何跳过索引的方法:

skips = [0, 1, 2, 4, 5, 6, 7, 9, 10, 14, 15, 16]

skipIndices = [k for k in range(1, len(skips)) if skips[k-1]+1 <> skips[k]]

print skipIndices

# output:  [3, 7, 9]

答案 1 :(得分:0)

我不确定您是否需要索引或缺失值。基于问题标题“获取已删除项目”,我推断您需要值(无索引)。

我会使用套装:

>>> skips = [0, 1, 2, 4, 5, 6, 7, 9, 10, 14, 15, 16]
>>> skippedValues = set(range(min(skips), max(skips)+1)) - set(skips)
>>> print skippedValues
set([8, 11, 3, 12, 13])
>>> print list(skippedValues)
[8, 11, 3, 12, 13]

请注意,即使您的列表未排序,此解决方案仍然有效。

答案 2 :(得分:0)

适用于任何列表skips

>>> skips = [2,3,6,7,10]
>>> [x for x in range(min(skips), max(skips)) if x not in skips]
[4, 5, 8, 9]