想知道给定列表[0,1,2,3,5,6,7]或[0,2,3,4,5,6,7]或[1,3, 4,5,7,9]并采取当前指数。有人帮忙吗?
答案 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]