Searching and manipulating lists of tuples
Gerard Flanagan
grflanagan at yahoo.co.uk
Mon Jun 12 09:36:53 EDT 2006
MTD wrote:
> Hello,
>
> I'm wondering if there's a quick way of resolving this problem.
>
> In a program, I have a list of tuples of form (str,int), where int is a
> count of how often str occurs
>
> e.g. L = [ ("X",1),("Y",2)] would mean "X" occurs once and "Y" occurs
> twice
>
> If I am given a string, I want to search L to see if it occurs already.
> If it does, I find the corresponding tuple and increment the integer
> part. If not, I append the new element with int = 1.
>
> e.g.
>
> algorithm(L, "X") would produce output L = [("X",2),("Y",2)]
> algorithm(L,"Z") would produce L = [("X",1),("Y",2),("Z",1)]
>
just a thought:
class MyList(object):
def __init__(self):
self._items = []
self._counts = []
def append(self, value):
try:
i = self._items.index(value)
self._counts[i] += 1
except ValueError:
self._items.append(value)
self._counts.append(1)
def __getitem__(self, index):
return self._items[index], self._counts[index]
def __repr__(self):
return str(zip(self._items, self._counts))
m = MyList()
print m
m.append('K')
print m
m.append('K')
print m
m.append('Z')
print m
-----------------------------------
Gerard
More information about the Python-list
mailing list