Nov-03-2020, 05:37 AM
Start with writing the test to determine if a date is in the specified range. Can you do that? You don't need anything fancy like datetime, just check if a number is in a range. What you have is not going to work. It would only match the year_start or year_end, not the values inbetween. item in
- returns True if item matches something in the list, it is not interpreting the list as a range.
The way you were trying to keep count wasn't going to work either. You treat count as an integer and as a list. You can't do that. You will probably want count to be a collection of some kind. I would use a dictionary where the key is the year and the value is the count.
years={} if tuple[0] in years: count[tuple[0]] = count.get(tuple[0], 0) + 1
Like the comparison I would work this part independently too. Try adding a few years to your count and then print the count to see if it works.
It is easier to solve small problems than big problems. If you cannot figure out how to write a program to solve a big problem, first write a program to solve a small piece of the big program. Then write another programe to solve a different piece.
That's how I solved this problem. First I wrote something that generated a random list of numbers in the range 1900 to 2020 to represent your earthquake data. Then I write a little loop to print True or False based on if the year in the list was in the range 1996 to 2020. Then I wrote the dictionary part to save the years that are in that range, and finally I wrote the part that incremented the count each time a year was found. A bunch of little programming tasks that were fairly simple but added up to a good working example.