# Counter for items in lists in lists?

Bryan belred1 at yahoo.com
Sat Sep 25 09:00:25 CEST 2004

```Steven Bethard wrote:
> Charlotte Henkle <charlotte <at> fgm.com> writes:
>
>>I'm pondering how to count the number of times an item appears in
>>total in a nested list.
>
>
>
>
>>>>myList=[['a','b','c','d'],['a','f','g','h'],['a','b','x','y']]
>>>>def count(item):
>
> ...     if not isinstance(item, list):
> ...             return {item:1}
> ...     counts = {}
> ...     for i in item:
> ...             for key, ct in count(i).items():
> ...                     counts[key] = counts.get(key, 0) + ct
> ...     return counts
> ...
>
>>>>count(myList)
>
> {'a': 3, 'c': 1, 'b': 2, 'd': 1, 'g': 1, 'f': 1, 'h': 1, 'y': 1, 'x': 1}
>
> Steve
>

or maybe a less general approach might work if the nested list is always one deep:

>>> myList=[['a','b','c','d'],['a','f','g','h'],['a','b','x','y']]
>>> tmp = []
>>> d = {}
>>> for item in myList: tmp += item
>>> for key in tmp: d[key] = d.get(key, 0) + 1
>>> d
{'a': 3, 'c': 1, 'b': 2, 'd': 1, 'g': 1, 'f': 1, 'h': 1, 'y': 1, 'x': 1}

bryan

```