Frequency of values

Frequency of values

EasyDictionary Programs · 74 of 94

Write a Python program to count how often each value appears in a dictionary.

Input
{"a": 10, "b": 20, "c": 25, "d": 10, "e": 30, "f": 20}
Output
{10: 2, 20: 2, 25: 1, 30: 1}

Approach

  1. Counter(d.values()).

Solution

Python
from collections import Counterd = {"a": 10, "b": 20, "c": 25, "d": 10, "e": 30, "f": 20}print(dict(Counter(d.values())))
Output
{10: 2, 20: 2, 25: 1, 30: 1}

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Keys with the shortest lists

Keys with the shortest lists

EasyDictionary Programs · 73 of 94

Write a Python program to find the keys whose list values are the shortest.

Input
{"a": [10, 12], "b": [10], "c": [10, 20, 30, 40], "d": [20]}
Output
['b', 'd']

Approach

  1. Find the minimum length, then keep keys with that length.

Solution

Python
d = {"a": [10, 12], "b": [10], "c": [10, 20, 30, 40], "d": [20]}shortest = min(len(v) for v in d.values())print([k for k, v in d.items() if len(v) == shortest])
Output
['b', 'd']

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Keys of the top 2 values

Keys of the top 2 values

EasyDictionary Programs · 72 of 94

Write a Python program to find the keys of the two largest values.

Input
{"a": 18, "b": 50, "c": 36, "d": 47, "e": 60}
Output
['e', 'b']

Approach

  1. Sort keys by value, descending, and take two.

Solution

Python
d = {"a": 18, "b": 50, "c": 36, "d": 47, "e": 60}print(sorted(d, key=d.get, reverse=True)[:2])
Output
['e', 'b']

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Keep even numbers in list values

Keep even numbers in list values

EasyDictionary Programs · 71 of 94

Write a Python program to keep only even numbers in each list value.

Input
{"a": [11, 4, 6, 15], "b": [3, 8, 12], "c": [5, 3, 10]}
Output
{'a': [4, 6], 'b': [8, 12], 'c': [10]}

Approach

  1. Nested comprehensions.

Solution

Python
d = {"a": [11, 4, 6, 15], "b": [3, 8, 12], "c": [5, 3, 10]}print({k: [x for x in v if x % 2 == 0] for k, v in d.items()})
Output
{'a': [4, 6], 'b': [8, 12], 'c': [10]}

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Print the keys

Print the keys

EasyDictionary Programs · 70 of 94

Write a Python program to print the keys of a dictionary, capitalised.

Input
{"pepsi": 50, "sprite": 60, "slice": 55}
Output
Pepsi
Sprite
Slice

Approach

  1. Loop over the dict.

Solution

Python
drinks = {"pepsi": 50, "sprite": 60, "slice": 55}for name in drinks:    print(name.title())
Output
Pepsi
Sprite
Slice

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Remove keys whose values contain a substring

Remove keys whose values contain a substring

EasyDictionary Programs · 69 of 94

Write a Python program to remove entries whose value contains any of the given substrings.

Input
{1: "sqatools is best", 2: "for learning python"}, ["best", "excellent"]
Output
{2: 'for learning python'}

Approach

  1. Keep values where no substring is present.

Solution

Python
d = {1: "sqatools is best", 2: "for learning python"}subs = ["best", "excellent"]print({k: v for k, v in d.items() if not any(s in v for s in subs)})
Output
{2: 'for learning python'}

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Remove keys with large values

Remove keys with large values

EasyDictionary Programs · 68 of 94

Write a Python program to remove keys whose values are greater than n.

Input
{"sqa": 3, "tools": 5, "python": 7}, n = 6
Output
{'sqa': 3, 'tools': 5}

Approach

  1. Keep v <= n.

Solution

Python
d = {"sqa": 3, "tools": 5, "python": 7}n = 6print({k: v for k, v in d.items() if v <= n})
Output
{'sqa': 3, 'tools': 5}

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Values for keys found in a list

Values for keys found in a list

EasyDictionary Programs · 67 of 94

Write a Python program to get the values of dictionary keys that are also in a list.

Input
["sqatools", "is", "best"], {"sqatools": 10}
Output
[10]

Approach

  1. Loop over the list and look up keys that exist.

Solution

Python
words = ["sqatools", "is", "best"]d = {"sqatools": 10}print([d[w] for w in words if w in d])
Output
[10]

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Nested dictionary from a list of keys

Nested dictionary from a list of keys

EasyDictionary Programs · 66 of 94

Write a Python program to nest each item of a dictionary under a key from a list.

Input
{"sqatools": 8, "python": 6}, [1, 2]
Output
{1: {'sqatools': 8}, 2: {'python': 6}}

Approach

  1. zip the list with the dict’s items.

Solution

Python
d = {"sqatools": 8, "python": 6}keys = [1, 2]print({k: {name: v} for k, (name, v) in zip(keys, d.items())})
Output
{1: {'sqatools': 8}, 2: {'python': 6}}

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs

Depth of a nested dictionary

Depth of a nested dictionary

MediumDictionary Programs · 65 of 94

Write a Python program to find the depth of a nested dictionary.

Input
{"a": 1, "b": {"c": {"d": {}}}}
Output
4

Approach

  1. Depth is 1 plus the deepest child dictionary’s depth (recursion).

Solution

Python
def depth(d):    if not isinstance(d, dict) or not d:        return 1 if isinstance(d, dict) else 0    return 1 + max(depth(v) for v in d.values()) print(depth({"a": 1, "b": {"c": {"d": {}}}}))
Output
4

Line by line

Lines 2-3

An empty dict has depth 1; a non-dict value adds nothing.

Line 4

Each level adds 1 to the deepest value below it.

Learn the concept

New to this topic? Read the lesson, then come back.

More dictionary programs

← All 94 Dictionary Programs