Johannes Bauer wrote:
Hello list,

I'm having trouble with a incredibly simple sort of a list containing
ints and tuples:

def myorder(x):
        if type(x) == int:
                return x
        else:
                return x[0]

odata = sorted([ (a, b) for (a, b) in data["description"].items() ],
key=myorder)

You're sorting a list of tuples (key/value pairs), so 'myorder' is
always given a tuple.

still says:

Traceback (most recent call last):
  File "./genproto.py", line 81, in <module>
    odata = sorted([ (a, b) for (a, b) in data["description"].items() ],
key=myorder)
TypeError: unorderable types: tuple() < int()

Why is that? Am I missing something very obvious?

Are some keys 'int' and others 'tuple'? In Python 3.x you can't compare
them except for equality:


Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> (1, ) < 1
False


Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> (1, ) < 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: tuple() < int()
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to