猿问

从字典外的列表中获取键值

我正在尝试为字典中的每个键计算一个“分数”。键值的值在不同的列表中。简化示例:

我有:

Key_values = ['a': 1, 'b': 2, 'c': 3, 'd': 4]
My_dict = {'player1': ['a', 'd', 'c'], 'player2': ['b', 'a', 'd']}

我想:

Scores = ['player1': 8, 'player2': 7]


智慧大石
浏览 129回答 3
3回答

手掌心

您可以使用 dict 理解创建它:Key_values = {'a': 1, 'b': 2, 'c': 3, 'd': 4}My_dict = {'player1': ['a', 'd', 'c'], 'player2': ['b', 'a', 'd']}scores = {player: sum(Key_values[mark] for mark in marks) for player, marks in My_dict.items()}print(scores)# {'player1': 8, 'player2': 7}

温温酱

尝试这个:>>> Key_values = {"a" : 1, "b" : 2, "c": 3, "d" : 4}>>> My_dict = {"player1":["a", "d", "c"], "player2":["b", "a", "d"]}>>> Scores= {k: sum(Key_values.get(v_el, 0) for v_el in v) for k,v in My_dict.items()}>>> Scores{'player1': 8, 'player2': 7}

波斯汪

尝试这个:   score = {}    key_values  = {'a': 1, 'b': 2, 'c': 3, 'd': 4}    my_dict = {'player1': ['a', 'c', 'd'], 'player2': ['b', 'a', 'd']}    scr = 0    for i in my_dict.keys(): # to get all keys from my_dict      for j in my_dict[i]: # iterate the value list for key.        scr += key_values[j]      score[i] = scr      scr = 0    print(score)
随时随地看视频慕课网APP

相关分类

Python
我要回答