查字典和积累

2024-10-01 02:23:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

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

if["Location"] = "Pooch Shop":

谢谢你的帮助!你知道吗


Tags: 字典locationshopavailabletotalcolorsratingratings
2条回答

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

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
>>> print(a)
5
>>> print(a == 5)  # "is a equal to 5?"
True

第二个问题是if["Location"]。你知道吗

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

例如:

>>> a = ["x", "y", "z"]
>>> print(a[1])
y
>>> b = {"name": "Tomer", "age": 29}
>>> print(b["name"])
Tomer

所以你希望["Location"]跟在某个对象后面。你知道吗

下一行代码中有一个提示:

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

相关问题 更多 >