问题:
Suppose you have a list:
- Delete every nth element.
- If the next nth element exceeds the list's length, modulate it.
- Do it till one element left.
例如:
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]
这是一种方法
相关问题 更多 >
编程相关推荐