[英]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.