Python: Get the n expensive and cheap price items from a given dataset using Heap queue algorithm
Python heap queue algorithm: Exercise-10 with Solution
Write a Python program to get the most expensive and least expensive items from a given dataset using the heap queue algorithm.
Sample Solution:
Python Code:
import heapq
from pprint import pprint
items = [
{'name': 'Item-1', 'price': 101.1},
{'name': 'Item-2', 'price': 555.22},
{'name': 'Item-3', 'price': 45.09},
{'name': 'Item-4', 'price': 22.75},
{'name': 'Item-5', 'price': 16.30},
{'name': 'Item-6', 'price': 110.65}
]
cheap = heapq.nsmallest(3, items, key=lambda s: s['price'])
expensive = heapq.nlargest(3, items, key=lambda s: s['price'])
print("Original datasets:")
pprint(items)
print("\nFirst 3 expensive items:")
pprint(expensive)
print("\nFirst 3 cheap items:")
pprint(cheap)
Sample Output:
Original datasets: [{'name': 'Item-1', 'price': 101.1}, {'name': 'Item-2', 'price': 555.22}, {'name': 'Item-3', 'price': 45.09}, {'name': 'Item-4', 'price': 22.75}, {'name': 'Item-5', 'price': 16.3}, {'name': 'Item-6', 'price': 110.65}] First 3 expensive items: [{'name': 'Item-2', 'price': 555.22}, {'name': 'Item-6', 'price': 110.65}, {'name': 'Item-1', 'price': 101.1}] First 3 cheap items: [{'name': 'Item-5', 'price': 16.3}, {'name': 'Item-4', 'price': 22.75}, {'name': 'Item-3', 'price': 45.09}]
Flowchart:
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to find the top k integers that occur the most frequently from a given lists of sorted and distinct integers using Heap queue algorithm.
Next: Write a Python program to merge multiple sorted inputs into a single sorted iterator (over the sorted values) using Heap queue algorithm.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/python-exercises/heap-queue-algorithm/python-heapq-exercise-10.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics