我尝试使用while循环为每个键添加dictionary的[2]项。第[2]项是花费的钱
movies = {
1:('The Shawshank Redemption' , 'Bob', 25, 5),
2:('The Godfather', 'Kelly', 25, 4),
3:('The Dark Knight', 'Tyler', 25, 3),
4:('12 Angry Men', 'Bob', 25, 4),
5:('The Shawshank Redemption' , 'Bill', 35, 4),
6:('The Godfather', 'Sally', 35, 5),
7:('The Dark Knight', 'Suzy', 19, 5),
8:('12 Angry Men', 'Frank', 19, 3),
9:('The Shawshank Redemption' , 'Sally', 35, 5),
10:('The Godfather', 'Leslie', 40, 2),
11:('The Green Knight', 'Tom', 35, 2),
12:('14 Angry Men', 'Kaitlyn', 25, 4)}
下面是我的代码:
spent = 0
x = 1
while spent > 0:
spent += movies[x][2]
x += 1
else:
print ('The total money spent is:', spent)
它似乎没有循环或添加,我是新的,提前感谢
我们希望尽可能避免while循环,在这种情况下,您可以使用for循环,遍历所有项并求和与您的方法相同的值,只需更改循环类型即可
为了好玩,用reduce做了这个,没必要
spent
初始化为0因此条件
spent > 0
不是真的,所以循环不会执行问题出在你的情况下。您将“花费”设置为0,然后说,虽然它大于0,但应该将每个电影的花费相加
您应该做的是在x小于max键时设置要添加的条件。只需调用
max(movies.keys())
即可获得这个解决方案应该不难实现。我不会提供代码解决方案,因为这感觉像解决你的家庭作业,但改变我的建议,它应该工作的条件
另外,正如在评论中所建议的那样,给你的
movies
列一个清单会比写一个dict更好相关问题 更多 >
编程相关推荐