문제

I am trying to sort a list of objects in Python 3.4 based on the value of the data attribute of each object. If I use

db[count].sort(key=lambda a: a.data)

everything works fine. However, I want the sort to be case insensitive so I use

db[count].sort(key=lambda a: a.data.lower)

but then I get

db[count].sort(key=lambda a: a.data.lower) TypeError: unorderable types: builtin_function_or_method() < builtin_function_or_method()

Any ideas?

도움이 되었습니까?

해결책

key has to be a callable that returns a value to be sorted. In your case it returns another callable a.data.lower. You need to call lower in order to get the value, so the correct form is:

db[count].sort(key=lambda a: a.data.lower())

다른 팁

You are passing a reference to the lower method instead of calling it.

Try this:

db[count].sort(key=lambda a: a.data.lower())
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top