Searching and manipulating lists of tuples
MTD
marc.t.davies at gmail.com
Mon Jun 12 09:07:12 EDT 2006
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)]
I tried to create an algorithm of the following form:
>>> def algorith(list,str):
... flag = True
... for l in list:
... if l[0] == str:
... l[1] += 1
... flag = False
... if flag:
... list.append((str,1))
...
But:
>>> algorith(L,"X")
gives:
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
File "<interactive input>", line 5, in algorith
TypeError: object does not support item assignment
So clearly that doesn't work... any ideas?
More information about the Python-list
mailing list