pracuję z list
z dict
obiektów, które wygląda następująco (kolejność obiektów różni):otrzymali listę słowników, w jaki sposób można wyeliminować duplikaty jednego klucza i sortować według innego
[
{'name': 'Foo', 'score': 1},
{'name': 'Bar', 'score': 2},
{'name': 'Foo', 'score': 3},
{'name': 'Bar', 'score': 3},
{'name': 'Foo', 'score': 2},
{'name': 'Baz', 'score': 2},
{'name': 'Baz', 'score': 1},
{'name': 'Bar', 'score': 1}
]
Co chcę zrobić, to usunąć zduplikowane nazwy, zachowując tylko jedno z tych nazw, które mają najwyższą wartość 'score'
. Wyniki z powyższej listy będzie:
[
{'name': 'Baz', 'score': 2},
{'name': 'Foo', 'score': 3},
{'name': 'Bar', 'score': 3}
]
nie jestem pewien, który to wzór do wykorzystania tutaj (oprócz pozornie idiotycznego pętli, który utrzymuje sprawdzenie czy prąd dict
„s 'name'
jest już na liście, a następnie . sprawdzenie, czy jego 'score'
jest wyższe niż istniejące czyjegoś 'score'
Przejdź z pętli, to proste i jasne. –
Jest to proste i przejrzyste i łatwe do odczytania w ciągu sześciu miesięcy, kiedy trzeba to zmienić "nieznacznie". –
+1 Jest coś magicznego w tym pytaniu, ponieważ wymyślił różnorodny i interesujący zestaw odpowiedzi. Fascynujące jest, jak wiele całkowicie różnych rozwiązań ma ten problem. Biorę to pod uwagę jako ulubiony ze względu na bogaty zestaw odpowiedzi (również przechodzę do każdej odpowiedzi, która ma twórcze lub interesujące rozwiązanie). –