簡體   English   中英

從元組列表中創建對詞典的優雅方式?

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

從這個列表中,我需要創建一個對的字典 - ( gameIdbitrate ),其中gameIdbitrate是我在gameIdmyListOfTuples的第一個特定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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM