python - 如何从列表中删除/删除每个第 n 个元素?

标签 python python-3.x list element

我已经看过这篇文章了: 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/

相关文章:

c# - ToList() 可以更改列表中项目的顺序吗?

python - 列表理解与元组赋值

Python 将列表拆分为给定开始/结束关键字的子列表

python - 查找列表的任何元素是否存在于Python中的另一个列表中

python - 使用 python 计算 inode 使用百分比

python - 如何设置 Python nosetests(版本 1.1.2)显示日志输出?

python - 如何在 pygame 中围绕枢轴点旋转 Element?

python - importlib._bootstrap 和 python 解释器初始化

python - s.find() 和 s.index() 之间哪个更快

python-3.x - 我的 Python 游戏敌人正在循环移动