[英]Elegant way to create a dictionary of pairs, from a list of tuples?
我已經定義了一個元組:( slot,gameid,bitrate)
並創建了一個名為myListOfTuples
的列表。 在此列表中可能是包含相同gameid
元組。
例如,列表可能如下所示:
[
(1, "Solitaire", 1000 ),
(2, "Diner Dash", 22322 ),
(3, "Solitaire", 0 ),
(4, "Super Mario Kart", 854564 ),
... and so on.
]
從這個列表中,我需要創建一個對的字典 - ( gameId
, bitrate
),其中gameId
的bitrate
是我在gameId
中myListOfTuples
的第一個特定myListOfTuples
。
例如,從上面的例子中 - 對的字典只包含一對gameId
“Solitaire”:( ("Solitaire", 1000 )
因為1000是第一個找到的比特率。
NB。 我可以創建一組獨特的游戲:
uniqueGames = set( (e[1] for e in myListOfTuples ) )
對於python2.6
dict(x[1:] for x in reversed(myListOfTuples))
如果你有Python2.7或3.1,你可以使用katrielalex的答案
{ gameId: bitrate for _, gameId, bitrate in reversed( myListOfTuples ) }.items( )
(這是一個視圖,而不是一個集合。它具有setlike操作,但如果你需要一個集合,則將其轉換為一個。)
你確定你想要一套,而不是gameId: bitrate
字典gameId: bitrate
? 在我看來,后者對於這個問題來說是更自然的數據結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.