簡體   English   中英

如何從python字典中存儲了多個值的鍵訪問值?

[英]How can I access values from a key that stores more than one value in a dictionary in python?

我的字典看起來像這樣:

{James: [10, 7, 9], 'Bob': [3, 8, 4], 'Charles': [6, 2, 5]}

我想做的是,按照獲得最高得分的順序輸出每個用戶的得分。 並加上他們的名字。 目前,我只能打印得分最高的學生:

inverse = [(value, key) for key, value in score_dict.items()]

print (max(inverse)[1])

輸出為:

James

我想要得到的輸出是:

James 10

Bob 8

Charles 6

您根本不需要逆字典。 你不試圖找到在所有學生單項最高分; 相反,您想找到每個學生的最高分數。

為此,請執行以下操作:

scores = {'James': [10, 7, 9], 'Bob': [3, 8, 4], 'Charles': [6, 2, 5]}
for name in scores.keys:
    print(name + " " + str(max(scores[name])))

這避免了需要新的字典。 最復雜的部分是str(max(scores[name])) ,從最里面到最外面讀:“取名字,找到名字的分數列表,找到分數的最大值,然后將其變成串”。

您可以簡單地創建具有用戶明智的高分的元組列表,然后再使用得分對其進行排序。 像這樣

x = {'James': [10, 7, 9], 'Bob': [3, 8, 4], 'Charles': [6, 2, 5]}
y = [(k, max(v)) for k, v in x.items()]
for k, v in sorted(y, key=lambda a: a[1], reverse=True):
    print (k, v)

暫無
暫無

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

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