"M. 427" <4...@free.fr> wrote

I ended up with this :

Version 3 :
for i,row in d[:].iteritems() : # BUG : TypeError: unhashable type
   if len(row) < 2 :
       del d[i]

You are getting too complicated.
You don't need the slice and you don't need iteritems.
You have a dictionary. When you iterate over a dictionary
what do you get? Don't know? Try it::

for x in {1:'foo',2:'bar'}: print x
...
1
2

So we get the keys. Now how do we use the keys to get the list?
Standard dictionary access:

print d[1]
foo

You know how to test the lenth of the list and delete the list so put
that together as you did before:

for row in d :     # row is actually the key
  if len(row) == 1 :        # so use the key to get the real row
    del row # WRONG      #' and delete the row, again using the key

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to