Stengah966
Stengah966

Reputation: 3

python sort multi-dimensional lists CASE INSENSITIVE

I have a list of different expressions. It looks like this:
my_list = [[1 ,2 ,'M' ,2], [1 ,2 ,'A' , 1], [1 ,2 ,'g' ,3], [1 ,2 ,'o' ,4]]

I want to sort the list. The key should always be the first entry in the list, in this case the book positions A, M, g, o. However, upper and lower case should be ignored.

In python I used:
my_list.sort(key = itemgetter (3))

Output is:
[[1, 2, 'A', 1], [1, 2, 'M', 2], [1, 2, 'g', 3], [1, 2, 'o', 4]]

The problem is that in my result the uppercase letters are sorted first and then the lowercase letters. How can I make lower and upper case letters sort together? The result should look like this:
[[1 ,2 ,'A' ,1], [1 ,2 ,'g' ,3], [1 ,2 ,'M' ,2], [1 ,2 ,'o' ,4]]

Upvotes: 0

Views: 243

Answers (1)

timgeb
timgeb

Reputation: 78770

Use key=lambda lst: lst[2].lower().

Upvotes: 2

Related Questions