Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Sorting Environmental Data

EasyPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Sorting Environmental Data. Start with the requirements on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

ERM Digital receives environmental monitoring records from multiple sites. Implement a function that returns the records in the required review order without modifying the original input list.

Sort records using these criteria, in order:

  1. Pollutant priority, according to the supplied pollutant_priority list. Earlier pollutants have higher priority.
  2. Measured value in descending order.
  3. timestamp in ascending chronological order. Timestamps use the format YYYY-MM-DDTHH:MM:SSZ and are in UTC.
  4. site in ascending lexicographical order.

Formal Specification

Implement sort_environmental_data(points, pollutant_priority).

  • points is a list of dictionaries with string fields site, pollutant, and timestamp, plus a numeric field value.
  • pollutant_priority is a list of pollutant names. Every record's pollutant appears exactly once in this list.
  • Return a new list containing the same dictionaries in the required order.
  • Do not mutate points.

Constraints

  • 1 <= len(points) <= 100,000
  • 1 <= len(pollutant_priority) <= 100
  • 0 <= point['value'] <= 1,000,000,000
  • Every record pollutant appears exactly once in pollutant_priority
  • Timestamps are valid UTC strings in fixed-width ISO format

Function Signature

def sort_environmental_data(points, pollutant_priority):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output