![](/img/trans.png)
[英]how do i remove the Nth element from my list until there's only one element remains and print that remaining element in python
[英]Remove evey nth element from list in Python
問題:
假設你有一個列表:
- 刪除每第 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.