Цикл Python WHILE, изо всех сил пытаться понять - PullRequest
0 голосов
/ 07 июля 2019

Я просто хочу изменить список от минимального до максимального

mylist = [4,7,5,1,8,2,3]
result = []

while len(result) != len(mylist):

    for num in mylist:
        if num in result:
            continue
        if num == min(mylist):
            result.append(num)
            continue
    break

print(result)

result = [1,2,3,4,5,6,7,8]

Ответы [ 2 ]

0 голосов
/ 07 июля 2019

После того, как вы нашли минимальное число и добавили его в новый список, вам также необходимо удалить его из исходного списка или его копию.

В противном случае функция min всегда будет возвращать 1.

И вы можете изменить условие в цикле while, чтобы продолжить, пока все элементы не будут удалены из mylist.

0 голосов
/ 07 июля 2019

Просто используйте функцию min, чтобы получить наименьшее число в списке, пока есть элементы в mylist:

mylist = [4,7,5,1,8,2,3] 
result = []

while len(mylist) > 0:
    minNum = min(mylist)
    result.append(minNum)
    mylist.remove(minNum)

print(result)

Выход:

[1, 2, 3, 4, 5, 6, 7, 8]

Или просто создайте result копию mylist, а затем сортируйте ее:

mylist = [4,7,5,1,8,2,3] 
result = mylist
result.sort()

print(result)

Выход:

[1, 2, 3, 4, 5, 6, 7, 8]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...