Python list sorting methods and Examples

Source: Internet
Author: User
Tags python list

Python list sorting methods and Examples

Sorts lists. Python provides two methods.

Method 1: use the List built-in function list. sort for sorting.

List. sort (func = None, key = None, reverse = False)

Python instance:

>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> list.sort() >>> list [2, 3, 5, 8, 9]

Method 2. sort by sequence type function sorted (list) (starting from 2.4)

Python instance:

>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> sorted(list) [2, 3, 5, 8, 9]

Differences between the two methods:

Sorted (list) returns an object that can be used as an expression. The original list remains unchanged, and a new sorted list object is generated.

List. sort () does not return objects and changes the original list.

Other sort instances:

Instance 1: forward sorting

>>>L = [2,3,1,4]>>>L.sort()>>>L>>>[1,2,3,4]

Instance 2: reverse sorting

>>>L = [2,3,1,4]>>>L.sort(reverse=True)>>>L>>>[4,3,2,1]

Instance 3: sort the second keyword

>>>L = [('b',6),('a',1),('c',3),('d',4)]>>>L.sort(lambda x,y:cmp(x[1],y[1])) >>>L>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

Example 4: sort the second keyword

>>>L = [('b',6),('a',1),('c',3),('d',4)]>>>L.sort(key=lambda x:x[1]) >>>L>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

Instance 5: sort the second keyword

>>>L = [('b',2),('a',1),('c',3),('d',4)]>>>import operator>>>L.sort(key=operator.itemgetter(1)) >>>L>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

Instance 6: (DSU method: Decorate-Sort-Undercorate)

>>>L = [('b',2),('a',1),('c',3),('d',4)]>>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort>>>A.sort()>>>L = [s[2] for s in A]>>>L>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

In the preceding section, we use the List sorting method in Step 6. instance 3.4.5.6 can be used to sort an item in List item.

Sort the comparison keywords.

Efficiency Comparison:

Cmp <DSU <key

Through experimental comparison, method 3 is slower than Method 6, Method 6 is slower than method 4, and method 4 and Method 5 are basically equivalent.

Sort multiple keywords by comparison:

Instance 7:

>>>L = [('d',2),('a',4),('b',3),('c',2)]>>> L.sort(key=lambda x:x[1])>>> L>>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]

We can see that the sorted L is only sorted by the second keyword,

What if we want to sort by the second keyword and then sort by the first keyword? There are two methods

Instance 8:

>>> L = [('d',2),('a',4),('b',3),('c',2)]>>> L.sort(key=lambda x:(x[1],x[0]))>>> L>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

Instance 9:

>>> L = [('d',2),('a',4),('b',3),('c',2)]>>> L.sort(key=operator.itemgetter(1,0))>>> L>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

Why does instance 8 work? The reason is that tuple is compared from left to right, and the first is compared. If it is equal, the second is compared.

The above is all the content of this article. I hope this article will help you in your study or work. I also hope to provide more support to the customer's home!

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.