Hello,

I would like to count list items but am not 100% sure how to do it.

Here is what I have so far:

        for brain in brains:
            x = getattr(brain, horizontal)
            y = getattr(brain, vertical)
            if x and y and (x, y) in table:
                table[(x, y)] += 1
                table[(x, '')] += 1
                table[('', y)] += 1
                table[('', '')] += 1

but when I run this, I get the following error on the line:

if x and y and (x, y) in table:

TypeError: list objects are unhashable

where:

x = ['airlines-scheduled', 'airport-car-parking']


I am basically looping through files within each file, I have an entity, for example:

file1
<topic>airlines-scheduled airport-car-parking</topic>

file2
<topic>airport-car-parking</topic>

etc...

So the above code counts all occurrences of 'airport-car-parking' and sums it up.

All works well if, I change the code to:

        for brain in brains:
            x = getattr(brain, horizontal)
            x = string.join(x, '' )
            y = getattr(brain, vertical)
            y = string.join(y, '' )
            if x and y and (x, y) in table:
                table[(x, y)] += 1
                table[(x, '')] += 1
                table[('', y)] += 1
                table[('', '')] += 1

So now my list becomes a string, which is not really good for me, as this fails when there is more then one item.

Is there a better way to loop through this and sum up all occurrences of each entry ie 'airport-car-parking'

Cheers

Norman


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to