Python 通过字典和积累进行迭代

Python 通过字典和积累进行迭代,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,目前,我正试图在嵌套在字典中的字典中积累值,以用于家庭作业 a = { "Tennis Balls": { "User Rating": 15, "Available Colors": 5, "Location": "Puppy Mart" } } b = { "Squeaky Toy": { "User Rating": 48, "Available Colors": 3,

目前,我正试图在嵌套在字典中的字典中积累值,以用于家庭作业

a = {
    "Tennis Balls": {
        "User Rating": 15,
        "Available Colors": 5,
        "Location": "Puppy Mart"
    }
}
b = {
    "Squeaky Toy": {
        "User Rating": 48,
        "Available Colors": 3,
        "Location": "Pooch Shop"
    }
}

c = {
    "Stick": {
        "User Rating": 32,
        "Available Colors": 4,
        "Location": "Pooch Shop"
    }
}
d = {
    "Old Shoe": {
        "User Rating": 13,
        "Available Colors": 2,
        "Location": "Puppy Mart"
    }
}
e = {
    "Stuffed Animal": {
        "User Rating": 14,
        "Available Colors": 7,
        "Location": "Dog Express"
    }
}
puppy_toys = {"Toys": [a, b, c, d, e]}

total_user_ratings = 0

for toy in puppy_toys["Toys"]:

    # insert your own code

    individual_user_rating = puppy_toys["Toys"][toy]["User Rating"]
    total_user_ratings += individual_user_rating

print(total_user_ratings)
我必须在这里用一行代码填写
#您的行
,这将允许for循环遍历字典puppy\u toys并提取位于“Pooch Shop”的玩具的用户评级总数,然后将总数存储在变量
total\u user\u ratings
,但是我的代码行,如下所示,似乎不起作用:

if[“Location”]=“Pooch Shop”:


谢谢你的帮助

好的,在玩了一点之后,我想你想通过位置的名称来获得用户评级的总和,因此,你有一个带有列表的字典,如果我错了,请纠正我,因此你只需循环它并取如下值:

a = {
    "Tennis Balls": {
        "User Rating": 15,
        "Available Colors": 5,
        "Location": "Puppy Mart"
    }
}
b = {
    "Squeaky Toy": {
        "User Rating": 48,
        "Available Colors": 3,
        "Location": "Pooch Shop"
    }
}

c = {
    "Stick": {
        "User Rating": 32,
        "Available Colors": 4,
        "Location": "Pooch Shop"
    }
}
d = {
    "Old Shoe": {
        "User Rating": 13,
        "Available Colors": 2,
        "Location": "Puppy Mart"
    }
}
e = {
    "Stuffed Animal": {
        "User Rating": 14,
        "Available Colors": 7,
        "Location": "Dog Express"
    }
}
puppy_toys = {"Toys": [a, b, c, d, e]}

total_user_ratings = 0

for toy in puppy_toys["Toys"]:
    shop = list(toy.values())[0]
    if (shop["Location"] == "Pooch Shop"):
        individual_user_rating = shop["User Rating"]
        total_user_ratings += individual_user_rating

print(total_user_ratings) 

您的代码行有两个主要问题。让我们看一下:

if[“Location”]=“Pooch Shop”:
首先,您尝试比较两个表达式。这是在python中使用相等运算符完成的,该运算符为
=
。单个
=
通常表示赋值

前任:
>a=5
>>>印刷品(a)
5.
>>>打印(a==5)#“a等于5吗?”
真的

第二个问题是
如果[“位置”]

在Python中,方括号通常用作“getter”。访问对象内部元素的一种方法(如列表或字典)

前任: a=[“x”、“y”、“z”] >>>打印(a[1]) Y >>>b={“姓名”:“托默”,“年龄”:29} >>>打印(b[“名称”]) 托马尔 因此,您希望
[“Location”]
位于某个对象之后

下一行代码中有一个关于应该是什么的提示:

个人用户评分=小狗玩具[“玩具”][玩具][“用户评分”]

确保给定代码的缩进是正确的。目前,它是无效代码。另外,在代码的前面和后面加上“`”,以避免像前面描述的那样出现缩进。此外,您的puppy_toys结构无效。确保所有括号都正确。“似乎不起作用”不是很好的描述。因为这是作业,我不会帮你解的。相反,发布错误消息/错误行为是什么,告诉我们您的想法和不理解的地方。python中的相等运算符是
==
,这可能就是您的目的。如果
[“Location”]
需要引用某些内容,则
[“Location”]
也不能紧跟在
之后。看下面的一行,了解它应该是什么样子。你对Loaction感兴趣的不是用户评级……明白了!通过“If toy[“Location”]=“Pooch Shop:@Tabla841-太棒了,我一直很乐意帮忙。”