Sortowanie

Odpowiedz Nowy wątek
2017-01-11 20:36
0

Cześć, chciałbym stworzyć program, który umożliwi użytkownikowi wprowadzenie 3 najlepszych wyników i posortowanie ich w porządku malejącym czyli np
wynik1 = 10,
wynik2 = 6,
wynik3 = 1.
Powinny mi wyskoczyć wyniki od tyłu.

edytowany 1x, ostatnio: White_Jaguar, 2017-01-11 20:39
Jesteś na forum, zadaj konkretne pytanie. Póki co na Twój post jedyną możliwą odpowiedzią jest Powodzenia!. - Patryk27 2017-01-11 20:46

Pozostało 580 znaków

2017-01-11 21:00
1
lista = [6,1,10]
sorted_list = []    # tworzymy pustą listę która będzie naszą posortowaną od wartości minimalnych listą 
while lista:        # tworzymy pętle która trwa dopóki lista nie jest pusta (wartość pusta w pytohnie jest = False)
    minimum = lista[0]      # tworzymy pierwszą wartość która później będziemy porównywać z innymi wynikami z listy
    for i in lista:     # petla for gdzie "przeskakujemy po każdym elemencie listy"
        if i < minimum:     # sprawdzamy czy każda kolejna wartość listy jest mniejsza od naszego minimum, jesli jest mniejsza...
            minimum = i     # przypisujemy ja do wartosci minimum
    sorted_list.append(minimum)     # dodajemy do sorted_list wartość minimum
    lista.remove(minimum)           # usuwamy z naszej listy wartość minimum
print(sorted_list)      # printujemy posortowana listę
edytowany 1x, ostatnio: komuher, 2017-01-11 21:03
Mam nadzieję że o to chodziło :) - komuher 2017-01-11 21:01

Pozostało 580 znaków

2017-01-12 04:21

A tradycyjnym pythonowym jednolinijkowcem:

print(sorted([wynik1, wynik2, wynik3])[::-1])
:D wiesz że sorted ma parametr reverse? ;) - Shalom 2017-01-12 09:32
Teraz już tak :). Dzięki. - Althorion 2017-01-12 09:38

Pozostało 580 znaków

2017-01-13 14:39
0

Tak bardziej "na piechotę", żeby autor załapał:

Najpierw możesz trzy wyniki umieścić w liście, albo już podczas ich podawania albo np. poprzez

spam = []
spam.append(wynik)

i tak dla każdego wyniku a potem

spam = [6, 10, 1]
spam.sort(reverse=True)

>>>spam
[10, 6, 1]

A potem wyświetlić z listy po kolei czy co tam potrzebujesz.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0