<分区>
我将如何从 1 到 100 遍历列表,从第一个元素开始删除所有其他元素,然后重复该步骤直到列表中只剩下一个元素。我是否必须使用循环链表,还是仅使用循环和条件语句就可以完成?
<分区>
我将如何从 1 到 100 遍历列表,从第一个元素开始删除所有其他元素,然后重复该步骤直到列表中只剩下一个元素。我是否必须使用循环链表,还是仅使用循环和条件语句就可以完成?
最佳答案
这会一遍又一遍地删除所有其他元素,直到只剩下一个
>>> L = range(100) # for Python3, use L = list(range(100))
>>> while len(L) > 1:
... del L[::2]
...
>>> L
[63]
我不确定“循环列表”是什么意思,但也许需要这样修改
>>> L = range(100)
>>> while len(L) > 1:
... del L[len(L)%2::2]
...
>>> L
[99]
len(L)%2
表示如果 L 的长度为奇数,则 del L[1::2]
或者如果你想看看发生了什么:
>>> L = range(100)
>>> while len(L) > 1:
... del L[len(L)%2::2]
... L
...
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
[3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99]
[3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99]
[3, 19, 35, 51, 67, 83, 99]
[3, 35, 67, 99]
[35, 99]
[99]
关于python - 如何使用 python 删除循环列表的元素,直到只剩下一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21869984/