Monday, 15 March 2010

python - How can I convert this tuple of tuples into a count of its elements? -



python - How can I convert this tuple of tuples into a count of its elements? -

i have tuple of tuples:

tupleoftuples = (('venue1', 'name1'), ('venue1', 'name2'), ('venue2', 'name3'), ('venue3', 'name4'), ('venue3', 'name5'), ('venue3', 'name6'))

i want convert result this:

output = (('venue1', 2), ('venue2', 1), ('venue3', 3))

in case, output contains ('venue1', 2), example, 2 number of times 'venue1' occurred in tupleoftuples.

i tried using len() count number of occurrences, not work given tupleoftuples not single tuple tuple of tuples.

how can done in python2.7?

use collections.counter() count how many occurrences have:

from collections import counter output = counter(t[0] t in tupleoftuples).items()

a counter() dictionary keys mapped counts; passing in generator look counting you. because dictionary subclass, dict.items() can used produce list of (key, count) tuples.

this produce list; phone call tuple() on if insist on having tuple here.

demo:

>>> collections import counter >>> tupleoftuples = ( ('venue1', 'name1'), ('venue1', 'name2'), ('venue2', 'name3'), ('venue3', 'name4'), ('venue3', 'name5'), ('venue3', 'name6') ) >>> counter(t[0] t in tupleoftuples).items() [('venue1', 2), ('venue3', 3), ('venue2', 1)]

python python-2.7 count tuples

No comments:

Post a Comment