DEV Community

HHMathewChan
HHMathewChan

Posted on • Originally published at rebirthwithcode.tech

Python Exercise 11: Count the number and generate new dictionary

Question

  • Write a program to iterate a given list and count the occurrence of each element and create a to show the count of each element.
  • Given:
sample_list = [11, 45, 8, 11, 23, 45, 23, 45, 89]
Enter fullscreen mode Exit fullscreen mode
  • Expected Output:
Printing count of each item   {11: 2, 45: 3, 8: 1, 23: 2, 89: 1}
Enter fullscreen mode Exit fullscreen mode

My solution

  1. initiate an empty dictionary
  2. initiate an counter
  3. iterate over the sample_list
    • 3.1 for each number, count the occurrence of that number in sample
    • 3.2 use setdefault() method to add the number as key and occurrence as value to dictionary
sample_list = [11, 45, 8, 11, 23, 45, 23, 45, 89]  
count_dictionary = dict()
occurrence = 0
for number in sample_list:  
    occurrence = sample_list.count(number)  
    count_dictionary.setdefault(number, occurrence)  


print(f"Printing count of each item {count_dictionary}")
Enter fullscreen mode Exit fullscreen mode

Other Solution

  1. initiate an empty dictionary
  2. iterate over the sample_list
    • 2.1 check if the number appear in the dictionary
      • 2.1.1 if the number does not appear in the dictionary, add the number as key and 1 as value to the dictionary
      • 2.1.2 if the appear in the dictionary, increase the value by 1.
sample_list = [11, 45, 8, 11, 23, 45, 23, 45, 89]
print("Original list ", sample_list)

count_dict = dict()
for item in sample_list:
    if item in count_dict:
        count_dict[item] += 1
    else:
        count_dict[item] = 1

print("Printing count of each item  ", count_dict)


Enter fullscreen mode Exit fullscreen mode

Credit

exercise on Pynative

Top comments (0)