Python Dictionary – using input to add up all of the values in a dictionary

Question:

I am about half way through an intro to python course. I very recently started studying lists/dictionaries. I was trying to create my own python code to try to learn how to work with dictionaries better. Basically, what I am trying to do is get a user’s input as to what section of a video series they are on and then output the total time left in the series. So far the code looks something like this:

video_dict = {
    1 : 9,   # Section 1 is 9 minutes
    2 : 75,
    3 : 174,
    4 : 100
}

current_section = input('What section are you currently on?')

total_time = 0
for key, value in video_dict.items():
    if current_section >= key:
    total_time += value

print(total_time)
     

The issue I have had so far is that it seems to be taking the number entered by the user and going in reverse up the dictionary. So if you enter ‘2’ as your current section, it adds up entry 1 and 2 and gives you a total_time of 84 minutes; instead of adding up 2,3, and 4 for a total time of 349 minutes. What do i need to correct to get it to go down the list instead of up it?

Asked By: Showtunes

||

Answers:

Your code looks so close to being correct. I made a slight modification, but otherwise it’s all your code:

video_dict = {
    1 : 9,   # Section 1 is 9 minutes
    2 : 75,
    3 : 174,
    4 : 100
}



current_section = int(input('What section are you currently on?'))

total_time = 0
for key, value in video_dict.items():
    if current_section <= key :
      total_time += value

print(total_time)

The modification I made current_section >= key to current_section <= key

Answered By: Mark
video_dict = {
    1 : 9,   # Section 1 is 9 minutes
    2 : 75,
    3 : 174,
    4 : 100
}

inp = int(input('What section are you currently on?'))
res = 0
for key in range(inp,0,-1):
    res+=video_dict[key]


 print(res)
Answered By: islam abdelmoumen

Basically, what I am trying to do is get a user’s input as to what section of a video series they are on and then output the total time left in the series

How about using a list ?

sections = [9, 75, 174, 100]

current_section = int(input('What section are you currently on?')) - 1
time_left = sum(sections[current_section:])
print(f'{time_left} minutes left')
Answered By: balderman
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.