从列表中删除每三个项目(在列表中定期删除条目)

时间:2016-08-24 00:51:19

标签: python list

我想从列表中删除每个第3项。 例如:

list1 = list(['a','b','c','d','e','f','g','h','i','j'])

删除三个中的多个索引后,列表将为:

['a','b','d','e','g','h','j']

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以使用enumerate()

>>> x = ['a','b','c','d','e','f','g','h','i','j']
>>> [i for j, i in enumerate(x) if (j+1)%3]
['a', 'b', 'd', 'e', 'g', 'h', 'j']

或者,您可以创建列表副本并按间隔删除值。例如:

>>> y = list(x) # where x is the list mentioned in above example
>>> del y[2::3] # y[2::3] = ['c', 'f', 'i']
>>> y
['a', 'b', 'd', 'e', 'g', 'h', 'j']

答案 1 :(得分:1)

[v for i, v in enumerate(list1) if (i + 1) % 3 != 0]

似乎你想要列表中的第三个项目(实际上是索引2)已经消失了。这就是+1的用途。