第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在嵌套字典中搜索給定值

如何在嵌套字典中搜索給定值

米琪卡哇伊 2023-05-09 10:34:17
我有一本看起來像這樣的字典:{'Week 1': {'Game1': {'Away': 'Team3', 'Home': 'Team2', 'Venue': 5},            'Game2': {'Away': 'Team1', 'Home': 'Team4', 'Venue': 6}}, 'Week 2': {'Game1': {'Away': 'Team1', 'Home': 'Team2', 'Venue': 4},            'Game2': {'Away': 'Team4', 'Home': 'Team3', 'Venue': 1}}, 'Week 3': {'Game1': {'Away': 'Team1', 'Home': 'Team3', 'Venue': 6},            'Game2': {'Away': 'Team2', 'Home': 'Team4', 'Venue': 4}} ...}該詞典包含由“周”、“比賽”、“主場”、“客場”和“場館”分隔的固定裝置。假設(shè)我想從上面的字典中搜索“Team 1”的所有固定裝置并獲得以下輸出:{'Week 1': {'Game 2': {'Away: ': 'a', 'Home: ': 'd', 'Rink ': 6}}, 'Week 2': {'Game1': {'Away: ': 'a', 'Home: ': 'b', 'Rink ': 4}}, 'Week 3': {'Game1': {'Away: ': 'a', 'Home: ': 'c', 'Rink ': 6}}}最好的方法是什么?我試過使用 for 循環(huán)for week, games in dict:    for game, details in games:        for k, v in details:            if v == 'Team1'               newDict.update({week: {game: details}})但我明白了ValueError: too many values to unpack我是在正確的路線上,還是完全偏離了基地?任何幫助將不勝感激
查看完整描述

3 回答

?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

字典理解:

{match: {game: details} for match, games in a.items() for game, details in games.items() for k, v in details.items() if v == 'Team1'}



查看完整回答
反對 回復(fù) 2023-05-09
?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

你也可以這樣做:


{

  week: {game: info}

  for week, games in weeks

  for game, info in games

  if team in (info['Away'], info['Home'])

}

把它們放在一起:


>>> weels = {'Week 1': {'Game1': {'Away': 'Team3', 'Home': 'Team2', 'Venue': 5},

...             'Game2': {'Away': 'Team1', 'Home': 'Team4', 'Venue': 6}},

...  'Week 2': {'Game1': {'Away': 'Team1', 'Home': 'Team2', 'Venue': 4},

...             'Game2': {'Away': 'Team4', 'Home': 'Team3', 'Venue': 1}},

...  'Week 3': {'Game1': {'Away': 'Team1', 'Home': 'Team3', 'Venue': 6},

...             'Game2': {'Away': 'Team2', 'Home': 'Team4', 'Venue': 4}} }

>>> team = 'Team1'

>>> {week: {game: info}

...   for week, games in weeks

...   for game, info in games

...   if team in (info['Away'], info['Home'])}

{'Week 1': {'Game2': {'Away': 'Team1', 'Home': 'Team4', 'Venue': 6}}, 'Week 2': {'Game1': {'Away': 'Team1', 'Home': 'Team2', 'Venue': 4}}, 'Week 3': {'Game1': {'Away': 'Team1', 'Home': 'Team3', 'Venue': 6}}}



查看完整回答
反對 回復(fù) 2023-05-09
?
慕沐林林

TA貢獻2016條經(jīng)驗 獲得超9個贊

您可以使用 aNestedDict并避免使用嵌套的 for 循環(huán)或理解。


from ndicts import NestedDict


d = {'Week 1': {'Game1': {'Away': 'Team3', 'Home': 'Team2', 'Venue': 5},

? ? ? ? ? ? ? ? 'Game2': {'Away': 'Team1', 'Home': 'Team4', 'Venue': 6}},

? ? ?'Week 2': {'Game1': {'Away': 'Team1', 'Home': 'Team2', 'Venue': 4},

? ? ? ? ? ? ? ? 'Game2': {'Away': 'Team4', 'Home': 'Team3', 'Venue': 1}},

? ? ?'Week 3': {'Game1': {'Away': 'Team1', 'Home': 'Team3', 'Venue': 6},

? ? ? ? ? ? ? ? 'Game2': {'Away': 'Team2', 'Home': 'Team4', 'Venue': 4}}}

nd = NestedDict()


nd_team1 = {}

for key, value in nd.items():

? ? if value == "Team1":

? ? ? ? ? ? team1_record = nd.extract[key[:-1]]

? ? ? ? ? ? nd_team1.update(team1_record)

>>> nd_team1.to_dict()

{'Week 1': {'Game2': {'Away': 'Team1', 'Home': 'Team4', 'Venue': 6}},

?'Week 2': {'Game1': {'Away': 'Team1', 'Home': 'Team2', 'Venue': 4}},

?'Week 3': {'Game1': {'Away': 'Team1', 'Home': 'Team3', 'Venue': 6}}}

安裝ndicts?pip install ndicts



查看完整回答
反對 回復(fù) 2023-05-09
  • 3 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號