Python 定期从列表中删除项目

标签 python list element

假设我有一个包含 1000 个元素的长列表,我想根据两个变量定期删除元素组。

所以对于 my_list=[1,2,3,4...1000]a=5, b=7 ,我会保留前 5 个元素,删除接下来的 7 个,并重复直到列表末尾。

列表将如下所示:

my_list = [1,2,3,4,5,12,13,14,15,16...]

在使用它们之前我不知道 a 或 b,也不知道列表的长度,所以我正在寻找一个通用的解决方案。

谢谢!

最佳答案

这是使用 enumerate 并在 ab< 的总和上获取索引的 mod 的一种方法。过滤掉 mod 小于 a 的值:

l = range(1, 30)
a, b = 5, 7
r = [x for i, x in enumerate(l) if i%(a+b) < a]
print(r)
# [1, 2, 3, 4, 5, 13, 14, 15, 16, 17, 25, 26, 27, 28, 29]

如果您要删除接下来的 7 个,则不应包括 12 个。

关于Python 定期从列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42956690/

相关文章:

python - 在声明之前引用python中的类

python - 用 python 发送电子邮件

javascript - 如何在单击按钮时调用我的 python 代码中的函数 - 从 javascript onClick 调用 Python

python - 如何将列表追加到 Python 中函数创建的列表中

Python:难以过滤掉包含某些子字符串的字符串

r - 按元素名称组合/合并列表

javascript - 如何在点击时获取动态元素的ID?

html - CSS - 悬停触发另一个悬停

java - 调用所有集合成员的删除方法

python - 将 int 转换为固定字符数的字符串