如何获取列表中的所有元素而没有python中特定索引处的元素?

时间:2013-10-18 09:56:24

标签: python

如何在没有特定索引的元素的情况下获取列表中的所有元素    在python列表中。    如果有一种快速简便的方法,那就太好了。

由于

3 个答案:

答案 0 :(得分:3)

假设

elements  # list of values
n  # unwanted element index

然后你可以做

result = elements[:n] + elements[n+1:]

result = elements[:]  # copy
del result[n]

答案 1 :(得分:2)

除了切片之外还有另一种方法:

def exclude(iterable, index):
    return [elem for i, elem in enumerate(iterable) if i != index]

那么,有什么好处?

嗯,它适用于任何可迭代的,而不仅仅是序列...但这不是什么大问题;当你处理一个生成器或一个字典时,你通常没有索引...(另外,你可以通过使用islice而不是切片来更轻松地获得索引。)

但是,很容易推广到多个索引,如果你可能想要的话,这可能是一个大问题:

def exclude(iterable, *indices):
    indices = set(indices)
    return [elem for i, elem in enumerate(iterable) if i not in indices]

但是如果你不会想要那个,那就没有充分的理由,这只是额外的复杂性,所以请选择切片。

答案 2 :(得分:-1)

>>> lst = ['a', 'b', 'c', 'd', 'e']
>>> exclude = lambda l, i: l[:i] + l[i+1:]
>>> exclude(lst, 3)
['a', 'b', 'c', 'e']