Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

Funkcja sortująca słownik w Pythonie

A takiej rzeczy to w Pythonie chyba nie ma a szkoda. Czasem trzeba wyliczyć wystąpienia konkretnej wartości i poukładać to alfabetycznie lub zgodnie z kolejnością.

Także tym razem przydatny skrypcik który to zrobi z automatu. Przynajmniej nie będę musiał go szukać po całym świecie bo będzie tutaj



p1 = {'a' : [6,6], 'b' : 15, 'c': 45, 't':1, 'y':4}
p2 = {'a':'a','m':'m','k':'k'}
p3 = {'a' : 6, 'b' : 15, 'c': 45, 't':1, 'y':4}

def sortuj(sl, sort='desc'):
    t = {}
    wartosci = list(sl.values())
    if sort == 'asc':
        try:
            wartosci.sort(reverse=True)
        except TypeError:
            return sl
    else:
        try:
            wartosci.sort()
        except TypeError:
            return sl
    while len(wartosci) > 0:
        w = wartosci.pop()
        for k, v in sl.items():
            if v == w:
                t[k]=v
                continue
    return t

print(sortuj(p1,'asc'))
print(sortuj(p2))
print(sortuj(p3,'asc'))

No i na wyjściu mamy

{'a': [6, 6], 'b': 15, 'c': 45, 't': 1, 'y': 4}
{'m': 'm', 'k': 'k', 'a': 'a'}
{'t': 1, 'y': 4, 'a': 6, 'b': 15, 'c': 45}

Jak widać w pierwszej liście gdy wartości nie można posortować bo to np tablica to zwracana jest oryginalna lista. Można to rozszerzyć o sortowanie rekurencyjne ale chyba nie ma potrzeby. Ewentualnie jak będę miał taką potrzebę to coś naskrobę.

Komentarze (0)

Nikt jeszcze nie dodał komentarza. Możesz być pierwszy.

Napisz komentarz lub zgłoś błąd

Dodane w dniu 3 stycznia 2018 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony