我想从列表中删除每个第3项。 例如:
list1 = list(['a','b','c','d','e','f','g','h','i','j'])
删除三个中的多个索引后,列表将为:
['a','b','d','e','g','h','j']
我怎样才能做到这一点?
答案 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
的用途。