Home > Backend Development > Python Tutorial > Advanced python practical functions (under update)

Advanced python practical functions (under update)

不言
Release: 2018-04-13 17:11:25
Original
1359 people have browsed it

The content shared in this article is advanced python practical functions. Now I share it with everyone. Friends in need can refer to the content of this article

1.pyhton assertion


How to add exception parameters to the assert statement
The exception parameters of assert are actually adding string information after the assertion expression to explain the assertion and make it better Know what went wrong. The format is as follows:
assert expression [, arguments]
assert expression [, arguments]

assert len(lists) >=5,'The number of elements in the list is less than 5'
assert 2==1,'2 is not equal to 1'

2.list complex sorting

data_list = []  
data_list.append({'softname':'1','version':'1.2.2.2'})  
data_list.append({'softname':'7','version':'1.2.2.2'})  
data_list.append({'softname':'5','version':'1.2.2.2'})  
data_list.append({'softname':'2','version':'1.2.2.2'})  
data_list.append({'softname':'3','version':'1.2.2.2'})  
data_list.append({'softname':'9','version':'1.2.2.2'})  
#升序  
data_list.sort(key=lambda obj:obj.get('softname'), reverse=False)  

print data_list  
#[{'softname': '1'}, {'softname': '2'}, {'softname': '3'}, {'softname': '5'}, {'softname': '7'}, {'softname': '9'}]  
#降序  
data_list.sort(key=lambda obj:obj.get('softname'), reverse=True)  
print data_list  
#[{'softname': '9'}, {'softname': '7'}, {'softname': '5'}, {'softname': '3'}, {'softname': '2'}, {'softname': '1’}]
Copy after login

To sort List, Python provides two methods

Method 1. Use List’s built-in function list.sort to sort

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

Python example:

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

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

Python example:

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

The difference 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() will not return objects and change the original list.
Other examples of sort:
Example 1: Forward sorting

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

Example 2: Reverse sorting

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

Example 3: Sorting 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)]
Copy after login

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)]
Copy after login

Example 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)]
Copy after login

Example 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)]
Copy after login

The above gives 6 methods for sorting List, among which Example 3.4.5.6 can be used to sort a certain item in the List item

as the comparison key.

Efficiency comparison:

cmp < DSU < key

Through experimental comparison, method 3 is slower than method 6, method 6 is slower than method 4, method 4 Basically the same as method 5

Multiple keyword comparison sorting:

Example 7:

>>>L = [(&#39;d&#39;,2),(&#39;a&#39;,4),(&#39;b&#39;,3),(&#39;c&#39;,2)]  
>>> L.sort(key=lambda x:x[1])  
>>> L  
>>>[(&#39;d&#39;, 2), (&#39;c&#39;, 2), (&#39;b&#39;, 3), (&#39;a&#39;, 4)]
Copy after login

We see that the sorted L at this time is only based on the second key Sort by word,

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

Example 8:

>>> L = [(&#39;d&#39;,2),(&#39;a&#39;,4),(&#39;b&#39;,3),(&#39;c&#39;,2)]  
>>> L.sort(key=lambda x:(x[1],x[0]))  
>>> L  
>>>[(&#39;c&#39;, 2), (&#39;d&#39;, 2), (&#39;b&#39;, 3), (&#39;a&#39;, 4)]
Copy after login

Example 9:

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

#实例8能够工作呢?原因在于tuple是的比较从左到右比较的,比较完第一个,如果相等,比较第二个
Copy after login

Related recommendations:

In-depth anatomy of Python functions

Detailed explanation of the map of python functions ,Filter,Reduce

The above is the detailed content of Advanced python practical functions (under update). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template