我已经看过这篇文章了: Python: building new list from existing by dropping every n-th element ,但出于某种原因,它对我不起作用:
我这样试过:
def drop(mylist, n):
del mylist[0::n]
print(mylist)
这个函数接受一个列表和n
。然后它使用列表中的 n 步删除每个第 n 个元素并打印结果。
这是我的函数调用:
drop([1,2,3,4],2)
错误的输出:
[2, 4]
而不是 [1, 3]
然后我尝试了上面链接的变体:
def drop(mylist, n):
new_list = [item for index, item in enumerate(mylist) if index % n != 0]
print(new_list)
同样,函数调用:
drop([1,2,3,4],2)
给我同样的错误结果:
[2, 4]
而不是 [1, 3]
如何正确地从列表中删除/删除/删除每个 n-th 项?
最佳答案
假设您有列表:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
如果你想删除每一个第 k 个元素,你可以做类似的事情
del a[k-1::k]
例如 k = 3
,当前列表是 now
[1, 2, 4, 5, 7, 8, 10]
关于python - 如何从列表中删除/删除每个第 n 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32925532/