Heim  >  Artikel  >  Backend-Entwicklung  >  Erweiterte praktische Python-Funktionen (unter Aktualisierung)

Erweiterte praktische Python-Funktionen (unter Aktualisierung)

不言
不言Original
2018-04-13 17:11:251328Durchsuche

Bei dem in diesem Artikel geteilten Inhalt handelt es sich um erweiterte praktische Python-Funktionen. Freunde in Not können sich auf den Inhalt dieses Artikels beziehen

1.pyhton-Behauptung


So fügen Sie Ausnahmeparameter zur Assert-Anweisung hinzu
Die Ausnahmeparameter von Assert fügen tatsächlich Zeichenfolgeninformationen nach dem Assertionsausdruck hinzu, um die Assertion zu erklären und sie besser zu machen ging schief. Das Format ist wie folgt:
assert expression [, arguments]
assert expression [, arguments]

assert len(lists) >=5,'Die Anzahl der Elemente in der Liste ist geringer als 5'
Behaupten 2==1,'2 ist ungleich 1'

2.list Komplexe Sortierung

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’}]

Zu Sortieren Sie die Liste. Python bietet zwei Methoden

Methode 1. Verwenden Sie die integrierte List-Funktion list.sort, um

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

Python-Beispiel zu sortieren:

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

Methode 2. Verwenden Sie die Sequenztypfunktion sorted(list), um zu sortieren (ab 2.4)

Python-Beispiel:

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

Der Unterschied zwischen den beiden Methoden:
sorted(list) gibt ein Objekt zurück, das als Ausdruck verwendet werden kann. Die ursprüngliche Liste bleibt unverändert und es wird ein neues sortiertes Listenobjekt generiert.
list.sort() gibt keine Objekte zurück und ändert die ursprüngliche Liste.
Weitere Sortierbeispiele:
Beispiel 1: Vorwärtssortierung

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

Beispiel 2: Rückwärtssortierung

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

Beispiel 3: Für das zweite Schlüsselwort Sortieren

>>>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)]

Beispiel 4: Sortieren Sie das zweite Schlüsselwort

>>>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)]

Beispiel 5: Sortieren Sie das zweite Schlüsselwort

>>>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)]

Beispiel 6 :(DSU-Methode: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)]

Das Obige gibt 6 Methoden zum Sortieren von Listen an, von denen Beispiel 3.4.5.6 eine Rolle beim Sortieren eines bestimmten Elements im Listenelement spielen kann

Sortieren der Vergleichsschlüsselwörter

Effizienzvergleich:

cmp < DSU < Methode 5 ist grundsätzlich gleichwertig

Mehrere Schlüsselwortvergleichssortierung:

Beispiel 7:

Wir sehen, dass das sortierte L zu diesem Zeitpunkt nur nach der Sekunde sortiert ist Schlüsselwort.
>>>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)]

Was wäre, wenn wir das zweite Schlüsselwort zum Sortieren und dann das erste Schlüsselwort zum Sortieren verwenden möchten? Ja Zwei Methoden

Beispiel 9:

Verwandte Empfehlungen:
>>> 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)]

Über die Tiefe der Anatomie von Python-Funktionen
>>> 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是的比较从左到右比较的,比较完第一个,如果相等,比较第二个

Detaillierte Erklärung der Python-Funktionszuordnung und des Filters , reduzieren

Das obige ist der detaillierte Inhalt vonErweiterte praktische Python-Funktionen (unter Aktualisierung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn