Mam zdefiniowane krotki tak: (slot, GameID, bitrate)Elegancki sposób na stworzenie słownika par z listy krotek?
i stworzył listę z nich nazywa myListOfTuples
. Na tej liście mogą być krotki zawierające ten sam gameid
.
E.g. lista może wyglądać następująco:
[
(1, "Solitaire", 1000),
(2, "Diner Dash", 22322),
(3, "Solitaire", 0),
(4, "Super Mario Kart", 854564),
... and so on.
]
Z tej listy, muszę utworzyć słownik par - (gameId
, bitrate
), gdzie bitrate
dla tego gameId
jest pierwszym, który natknąłem się na tego konkretnego gameId
w myListOfTuples
.
E.g. Z powyższego przykładu - słownik par zawierałby tylko jedną parę z gameId
"Pasjans": ("Solitaire", 1000)
, ponieważ 1000 jest pierwszą bitrate znalezioną.
NB. Mogę stworzyć zestaw unikatowych gier z tego:
uniqueGames = set((e[1] for e in myListOfTuples))
katrielalex Dzięki - pojawia się błąd składni tuż po 'for'. Dlaczego "odwrócony"? – BeeBand
"Odwrócone" jest, ponieważ powtarzające się przypisanie słownika do tego samego klucza powoduje nadpisanie jego wartości; chcemy mieć * pierwszą * wartość na liście, więc wykonujemy iterację wstecz. Zakładam, że używasz Pythona 2.x, ponieważ słownictwo ze słownika jest nowością w Py3k. Możesz zrobić to samo z generatorem, choć jest trochę bardziej nieporządny. Ustalenie. – katrielalex
Rozumiem. Tak, słownik byłby bardziej przydatny. – BeeBand