为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

智慧大石 2022-06-02 16:04:27
我正在尝试为字典中的每个键计算一个“分数”。键值的值在不同的列表中。简化示例:我有: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]
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超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}


查看完整回答
反对 回复 2022-06-02
?
温温酱

TA贡献1752条经验 获得超4个赞

尝试这个:


>>> 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}


查看完整回答
反对 回复 2022-06-02
?
波斯汪

TA贡献1811条经验 获得超4个赞

尝试这个:


   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)


查看完整回答
反对 回复 2022-06-02
  • 3 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信