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-太棒了,我一直很乐意帮忙。”