簡體   English   中英

刪除嵌套字典中的鍵值對並找到鍵值的總和

[英]deleting a key value pair in nested dictionary and finding the sum of key values

qualifier_2 = {'KKR' : {'Chris Lynn': 4, 
                      'Sunil Narine': 10, 
                      'Gautam Gambhir (c)': 12, 
                      'Robin Uthappa (wk)': 1, 
                      'Ishank Jaggi': 28, 
                      'Colin Grandhomme': 0,
                      'Suryakumar Yadav': 31,
                      'Piyush Chawla': 2,
                      'Nathan Coulter-Nile': 6,
                      'Umesh Yadav': 2,
                      'Ankit Rajpoot': 4,
                      'Extra runs': 7,
                      'Total batted': 10},
                'MI': {'Lendl Simmons': 3,
                      'Parthiv Patel (wk)': 14,
                      'Ambati Rayudu': 6,
                      'Rohit Sharma (c)': 26,
                      'Krunal Pandya': 45,
                      'Kieron Pollard': 9,
                      'Extra runs': 8,
                      'key-valueal batted': 6}
              }

這是嵌套的字典,我想刪除某個鍵值對,並且想要所有分數的總和。

我認為這是最快的解決方案,沒有循環:

summ_KRR = sum(qualifier_2['KKR'].values()) # sum of 'KRR'
sum_all = sum(map(lambda x: sum(qualifier_2[x].values()),qualifier_2.keys())) # all sum 
qualifier_2.pop('KKR', None) # delete 'KRR'
print('sum:{}'.format(summ_KRR))
print(qualifier_2)

刪除鍵/值對:

key_to_remove = 'Krunal Pandya'

for key in qualifier_2:
    inner_dict = qualifier_2[key]
    if key_to_remove in inner_dict:
        del inner_dict[key_to_remove]
        break

鍵值匯總:

total = sum([val for outer_key in qualifier_2 
                     for __, val in qualifier_2[outer_key].items()]) 

測試刪除:

import pprint
pprint.pprint(qualifier_2)        # after removing 'Krunal Pandya'

輸出:

 {'KKR': {'Ankit Rajpoot': 4, 'Chris Lynn': 4, 'Colin Grandhomme': 0, 'Extra runs': 7, 'Gautam Gambhir (c)': 12, 'Ishank Jaggi': 28, 'Nathan Coulter-Nile': 6, 'Piyush Chawla': 2, 'Robin Uthappa (wk)': 1, 'Sunil Narine': 10, 'Suryakumar Yadav': 31, 'Total batted': 10, 'Umesh Yadav': 2}, 'MI': {'Ambati Rayudu': 6, 'Extra runs': 8, 'Kieron Pollard': 9, 'Lendl Simmons': 3, 'Parthiv Patel (wk)': 14, 'Rohit Sharma (c)': 26, 'key-valueal batted': 6}} 

測試總結:

print(total)        # with original qualifier_2

輸出:

 234 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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