Conditionals and looping in dictionaries

10.4 Conditionals and looping in dictionaries

Learning objectives

By the end of this section you should be able to

  • Write a conditional statement to check for a key/value.
  • Write a for loop to iterate over elements of a dictionary.

Conditionals for dictionary

Conditional statements can be used with dictionaries to check if certain keys, values, or dictionary items exist in the dictionary or if a value satisfies a particular condition.

Example 10.2

Templates and examples of a conditional statement on a dictionary

dict.items()
# (key, value) in dictionary.items()

movies = {"The godfather": 1974, "Interstellar": 2014}

print(("Interstellar", 2014) in movies.items())

True

Table 10.1
Conditionals on values or keys
# dictionary[key] operand test_value

movies = {"The godfather": 1974, "Interstellar": 2014}

print(movies["The godfather"] < 2000)

True

Table 10.2
dict.keys()
# key in dictionary.keys()

movies = {"The godfather": 1974, "Interstellar": 2014}

print("Interstellar" in movies.keys())

True

Table 10.3
dict.values()
# value in dictionary.values()

movies = {"The godfather": 1974, "Interstellar": 2014}

print(2014 in movies.values())

True

Table 10.4

Concepts in Practice

Conditionals on dictionaries

Given the dictionary fruit_count = {"apple": 2, "orange": 5, "pomegranate": 1}, answer the following questions.

1.
What is the output of "apple" in fruit_count.keys()?
  1. True
  2. False
2.
What is the output of ("orange", 5) in fruit_count.items()?
  1. SyntaxError
  2. True
  3. False
3.
Which conditional statement checks if the value associated with the key "pomegranate" is greater than 0?
  1. fruit_count("pomegranate") > 0
  2. fruit_count["pomegranate"] > 0
  3. fruit_count.get("pomegranate" > 0)

Looping on a dictionary

Looping over a Python dictionary is a way to iterate through key-value pairs in the dictionary. Looping in a dictionary can be done by iterating over keys or items. When looping using keys, keys are obtained using the keys() function and are passed to the loop variable one at a time. When looping over items using the items() function, both the key and value for each item are passed to the loop variable.

A for loop over a dictionary retrieves each key in the dictionary

    for key in dictionary: # Loop expression
      # Statements to execute in the loop

    # Statements to execute after the loop

Example 10.3

Iterating over a dictionary

dict.items()
zip_codes = {"Berkeley": 94709, "Santa Cruz": 95064, "Mountain View": 94030}

for key, value in zip_codes.items():
  print(key, value)
    
Berkeley 94709
Santa Cruz 95064
Mountain View 94030
Table 10.5
dict.keys()
zip_codes = {"Berkeley": 94709, "Santa Cruz": 95064, "Mountain View": 94030}

for key in zip_codes.keys():
  print(key)
Berkeley
Santa Cruz
Mountain View
Table 10.6
dict.values()
zip_codes = {"Berkeley": 94709, "Santa Cruz": 95064, "Mountain View": 94030}

for value in zip_codes.values():
  print(value)
94709
95064
94030
Table 10.7

Concepts in Practice

Loops on dictionaries

4.
Which method is used to loop over the values in a Python dictionary?
  1. keys()
  2. values()
  3. items()
5.
What is the output of the following code?
fruit_count = {"apple": 2, "orange": 5, "banana": 1}
for key in fruit_count.keys():
  print(key, end = " ")
  1. apple orange banana
  2. 2 5 1
  3. ("apple", 2) ("orange", 5) ("banana", 1)
6.
What is the output of the following code?
fruit_count = {"apple": 2, "orange": 5, "banana": 1}
for value in fruit_count.values():
  print(value * 2, end = " ")
  1. apple orange banana
  2. 2 5 1
  3. 4 10 2

Try It

Character count in a string

Given a string value, calculate and print the number of occurrences of all characters using a dictionary.

    Input:
    string_value = "This is a string"
    Prints {"T": 1, "h": 1, "i": 3, "s": 3, " ": 3, "a": 1, "t": 1, "r": 1, "n": 1, 
    "g": 1}

Try It

Calculate the total number of fruits

Given a fruit_count dictionary that contains information about fruits and the count of each fruit, calculate the total number of fruits across all fruit types.

    Input:
    fruit_count = {"banana": 2, "orange": 5, "peach": 5}
    Prints 12