在保留另一个字典中的键的同时创建一个字典 - Python

问题描述

我希望能够使用运行代码获得的值创建一个新字典,但我想保留第一个字典中的值。

import math
d = {'bob':[5,1,3],'toms':[3,5,3,0],'sammy': [0,'ted':[5,6,3]}
highscores = {}

total = 0
v =0
whatName = str(input("what name do you want?   "))
for i in d:
    a = d[whatName] #gives us whatNames values
    b = d[i]
    if i == whatName: #skips what name is
        pass
    else:
        for k in range(len(b)):
            #print(k,end = ' ')
            value = a[k]*b[k]
        
            total= value + total
            
        print(total) 
        total = 0

我的输出是: 18,40 这就是“total”变量的内容

我希望这些数字成为我新字典中的值 (highscores),同时保留旧字典中的键 (d)。

新词典不应具有用户输入的名称。所以如果我输入“bob”,他就不应该出现在新词典中,等等。

新的字典输出应该是这样的: highscores = {'toms':18,'sammy': 1,'ted': 40}

谢谢!

解决方法

d = {'bob':[5,1,3],'toms':[3,5,3,0],'sammy': [0,'ted':[5,6,3]}
highScores = {}

for x in d.keys():
    highScores[x] = sum(d[x])

print(highScores)

输出是: {'鲍勃':9,'汤姆斯':11,'萨米':1,'泰德':14}

这里我让 highScores 使用 d 中的所有名称或“键”,并将数组相加,使用 d.keys() 或 d.values() 来解析 dicts。

,
for key in d.keys():
    if key != whatName:
        high_scores[key] = sum(d[key])

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...