我已经阅读了这篇帖子:Python:通过删除每n个元素来构建新列表,但出于某种原因它对我不起作用:
我尝试了以下方法:
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个元素?