Python 在迭代期间从列表中删除整数?

Python 在迭代期间从列表中删除整数?,python,Python,这是我遇到错误的代码。我得到了一个错误:列表索引超出了范围,我知道这是因为您不能在迭代中删除项,但我需要,我不知道如何删除 我基本上是在尝试对这个列表进行排序,但找到最小值,然后将其附加到新列表中,并将其从旧列表中删除,但我不知道如何进行排序。请帮忙 代码: 对于您正在描述的任务,您每次都必须找到新的最小值: my_list = [22, 1, -5, -10, 62, -11, 36, 8] new_list = [] while my_list: my_min = min(my_l

这是我遇到错误的代码。我得到了一个错误:列表索引超出了范围,我知道这是因为您不能在迭代中删除项,但我需要,我不知道如何删除

我基本上是在尝试对这个列表进行排序,但找到最小值,然后将其附加到新列表中,并将其从旧列表中删除,但我不知道如何进行排序。请帮忙

代码:


对于您正在描述的任务,您每次都必须找到新的最小值:

my_list = [22, 1, -5, -10, 62, -11, 36, 8]
new_list = []

while my_list:
    my_min = min(my_list)
    new_list.append(my_min)
    my_list.remove(my_min)

此代码应将列表从最小到最大排序,然后删除最小的列表并将其传输到新列表

List = [22,1,-5,-10,62,-11,36,8]
List2 = []
swapped = True
while swapped:
    swapped = False
    for i in range(len(List)-1):
        if List[i] > List[i + 1]:
            List[i],List[i+1] = List[i + 1],List[i]
            swapped = True
List2.append(List[0])
List.remove(List[0])

print(List)
print(List2)

while循环更好,您需要一步一步地将新列表中最小的项保留为排序列表,并将其从旧列表中删除,然后重复此操作,直到旧列表变为空

   while (len(list) <= 1):
        sorted_list = sorted_list.append(min(list))
        list = list.remove(min(list))

    print(sorted_list)

这是怎么回事?它似乎没有整理任何东西。为什么不存储值,而不是它的索引?输出应该是什么?老实说,这可能是完全错误的,我只是想得到一些帮助:/然后解释一下你想要实现什么。给定输入,输出应该是什么?为什么?您是在尝试使用sorted_list=sortedlist对列表进行排序,还是在尝试学习如何实现特定的排序算法?具体来说,您似乎正在尝试实现。这与OP尝试实现的算法不同。我试图避免使用排序选项。谢谢你的回复。@JosephCranney那么你想在不包含最小元素的情况下对列表进行排序吗?我只想通过将第一个列表的最小值附加到一个新列表来对列表进行排序,然后在附加后,我想从第一个列表中删除它,然后重复。。。等等。找到新的min,重复。非常感谢,这是否适用于for循环?不过,非常感谢。在评论队列中:我可以要求你们在你们的答案周围添加更多的上下文吗。只有代码的答案很难理解。如果你能在你的文章中添加更多的信息,这将有助于询问者和未来的读者。
   while (len(list) <= 1):
        sorted_list = sorted_list.append(min(list))
        list = list.remove(min(list))

    print(sorted_list)