##### Count number of occurrences of list items in list of tuples
 Count number of occurrences of list items in list of tuples t4keheart Wafer-Thin Wafer Posts: 81 Threads: 27 Joined: Jan 2020 Reputation: Nov-03-2020, 04:23 AM Having a hard time with this one guys- I need to write a function that takes 3 arguments: data, year_start, year_end. The data is a list of tuples. year_start and year_end are input by user. The function needs to count the number of occurrences in 'data', where any year in the date range is in position [0] (position [0] in data is the year). I need to generate lists of tuples for earthquake_count_by_year = [], and total_damage_by_year = [] in the format [(year, value), (year, value)] for each year in the range. Here's what I have: ```def summary_statistics(data, year_start, year_end): earthquake_count_by_year = [] total_damages_by_year = [] casualties_by_year = [] count = 0 years = [] year_start = int(year_start) year_end = int(year_end) if year_end >= year_start: # store range of years into list years = list(range(year_start, year_end+1)) for index, tuple in enumerate(data): if tuple[0] in years: count[tuple[0]] += 1 print(count)```The above is just my attempt to count the number of occurrences in the input for each year. I feel like if I can get this much, I can figure out the rest. Here is the input for "data": `[(2020, 1, 6.0, 'CHINA: XINJIANG PROVINCE', 39.831, 77.106, 1, 0, 2, 0), (2020, 1, 6.7, 'TURKEY: ELAZIG AND MALATYA PROVINCES', 38.39, 39.081, 41, 0, 1600, 0), (2018, 1, 7.7, 'CUBA: GRANMA; CAYMAN IS; JAMAICA', 19.44, -78.755, 0, 0, 0, 0), (2019, 2, 6.0, 'TURKEY: VAN; IRAN', 38.482, 44.367, 10, 0, 60, 0), (2018, 3, 5.4, 'BALKANS NW: CROATIA: ZAGREB', 45.897, 15.966, 1, 0, 27, 6000.0), (2020, 3, 5.7, 'USA: UTAH', 40.751, -112.078, 0, 0, 0, 48.5), (2020, 3, 7.5, 'RUSSIA: KURIL ISLANDS', 48.986, 157.693, 0, 0, 0, 0)]` Reply Posts: 5,759 Threads: 16 Joined: Feb 2020 Reputation: 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 inreturns 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. Reply

 Possibly Related Threads… Thread Author Replies Views Last Post No matter what I do I get back "List indices must be integers or slices, not list" Radical 4 617 Sep-24-2023, 05:03 AM Last Post: deanhystad Function to count words in a list up to and including Sam Oldman45 15 5,675 Sep-08-2023, 01:10 PM Last Post: Pedroski55 Why do I have to repeat items in list slices in order to make this work? Pythonica 7 943 May-22-2023, 10:39 PM Last Post: ICanIBB Delete strings from a list to create a new only number list Dvdscot 8 1,208 May-01-2023, 09:06 PM Last Post: deanhystad find random numbers that are = to the first 2 number of a list. Frankduc 23 2,261 Apr-05-2023, 07:36 PM Last Post: Frankduc List all possibilities of a nested-list by flattened lists sparkt 1 742 Feb-23-2023, 02:21 PM Last Post: sparkt Finding combinations of list of items (30 or so) LynnS 1 665 Jan-25-2023, 02:57 PM Last Post: deanhystad Adding values with reduce() function from the list of tuples kinimod 10 1,933 Jan-24-2023, 08:22 AM Last Post: perfringo Сheck if an element from a list is in another list that contains a namedtuple elnk 8 1,393 Oct-26-2022, 04:03 PM Last Post: deanhystad Row Count and coloumn count Yegor123 4 1,016 Oct-18-2022, 03:52 AM Last Post: Yegor123

Forum Jump:

### User Panel Messages

##### Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020