python - 从 Python 列表中删除第 n 个元素
问题描述
问题:
假设你有一个列表:
- 删除每第 n 个元素。
- 如果下一个第 n 个元素超过列表的长度,则对其进行调制。
- 这样做直到剩下一个元素。
例子:
a = [1, 2, 3, 4, 5, 6, 7, 8]
period = 3
对于每次迭代 a 必须是:
a = [1, 2, 3, 4, 5, 6, 7, 8]
a = [1, 2, 4, 5, 6, 7, 8]
a = [1, 2, 4, 5, 7, 8]
a = [2, 4, 5, 7, 8]
a = [2, 4, 7, 8]
a = [4, 7, 8]
a = [4, 7]
a = [7]
我必须知道。
我正在编辑这个,因为我忘记添加我所做的并且没有成功。
这是我的尝试:
a = [1, 2, 3, 4, 5, 6, 7, 8]
periyot = 3
for it, i in enumerate(range(periyot, periyot * len(a), periyot), start=1):
index = (i - it) % len(a)
del a[index % len(a)]
print(a)
返回:
[1, 2, 4, 5, 6, 7, 8]
[1, 2, 4, 5, 7, 8]
[2, 4, 5, 7, 8]
[2, 4, 5, 8] # I'm off from here
[2, 4, 8]
[4, 8]
[8]
解决方案
这是一种方法。
a = [1, 2, 3, 4, 5, 6, 7, 8]
period = 3
idx = (period - 1)
while len(a) > 1:
idx = idx % len(a)
del a[idx]
idx += (period - 1)
print(a)
推荐阅读
- angular - Angular 6 不是函数异常
- javascript - 将多个数组合并为一个数组
- python - 无法获取heroku procfile
- google-cloud-platform - 压缩谷歌云存储桶中的目录,然后下载到本地目录
- r - 计算条件累积时间
- c++ - 好与坏:在构造函数中调用析构函数
- javascript - Angular HTTPClient POST 正文未发送
- php - 在PHP中将文本文件的句子左右对齐
- alexa-skills-kit - 没有 Alexa 智能家居触发器
- amazon-web-services - React Native 中的 AWS Appsync 401 和 403 错误