Heim > Backend-Entwicklung > Python-Tutorial > Teilen Sie 18 Tipps zur effizienten Python-Programmierung

Teilen Sie 18 Tipps zur effizienten Python-Programmierung

WBOY
Freigeben: 2023-04-16 15:25:03
nach vorne
1115 Leute haben es durchsucht

Teilen Sie 18 Tipps zur effizienten Python-Programmierung

Dieser Artikel wurde von Python Programming Time zusammengestellt

Die effizienten Programmierfähigkeiten der Python-Sprache machen diejenigen von uns, die vier Jahre lang C oder C++ studiert haben, so begeistert, dass wir endlich erleichtert sind. Hochsprache, wenn sie das nicht kann, warum ist sie dann so fortgeschritten?

01 Variablen austauschen

>>>a=3
>>>b=6
Nach dem Login kopieren

Wenn Sie Variablen in C++ austauschen möchten, benötigen Sie unbedingt eine leere Variable. Aber Python braucht es nicht, es braucht nur eine Zeile, jeder kann es klar sehen

>>>a,b=b,a
>>>print(a)
>>>6
>>>ptint(b)
>>>5
Nach dem Login kopieren

02 Wörterbuchverständnisse und Satzverständnisse

Die meisten Python-Programmierer kennen und verwenden Listenverständnisse. Wenn Sie mit dem Konzept des Listenverständnisses nicht vertraut sind: Ein Listenverständnis ist eine kürzere, prägnantere Möglichkeit, eine Liste zu erstellen.

>>> some_list = [1, 2, 3, 4, 5]
>>> another_list = [ x + 1 for x in some_list ]
>>> another_list
[2, 3, 4, 5, 6]
Nach dem Login kopieren

Seit Python 3.1 können wir dieselbe Syntax zum Erstellen von Mengen und Wörterbuchlisten verwenden:

>>> # Set Comprehensions
>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]
>>> even_set = { x for x in some_list if x % 2 == 0 }
>>> even_set
set([8, 2, 4])
>>> # Dict Comprehensions
>>> d = { x: x % 2 == 0 for x in range(1, 11) }
>>> d
{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}
Nach dem Login kopieren

Im ersten Beispiel erstellen wir eine Menge mit eindeutigen Elementen basierend auf some_list und in der Menge Enthält nur gerade Zahlen. Im Beispiel der Wörterbuchtabelle haben wir einen Schlüssel erstellt, der eine sich nicht wiederholende ganze Zahl zwischen 1 und 10 ist, und der Wert ist ein boolescher Typ, der angibt, ob der Schlüssel eine gerade Zahl ist.

Eine weitere erwähnenswerte Sache ist die wörtliche Darstellung von Mengen. Wir können einen Satz einfach auf diese Weise erstellen:

>>> my_set = {1, 2, 1, 2, 3, 4}
>>> my_set
set([1, 2, 3, 4])
Nach dem Login kopieren

ohne die integrierte Funktion set() zu verwenden.

03 Verwenden Sie Counter, um Objekte beim Zählen zu zählen.

Das klingt offensichtlich, wird aber oft vergessen. Etwas zu zählen ist für die meisten Programmierer eine häufige Aufgabe und in den meisten Fällen keine große Herausforderung – hier sind ein paar Möglichkeiten, es einfacher zu machen.

Pythons Sammlungsbibliothek verfügt über eine integrierte Unterklasse der dict-Klasse, die speziell für diese Art von Aufgaben entwickelt wurde:

>>> from collections import Counter
>>> c = Counter('hello world')
>>> c
Counter({'l': 3, 'o': 2, ' ': 1, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})
>>> c.most_common(2)
[('l', 3), ('o', 2)]
Nach dem Login kopieren

04 JSON schön ausdrucken

JSON ist eine sehr gute Form der Datenserialisierung und wird häufig verwendet durch verschiedene APIs und Webdienste heute. Durch die Verwendung der in Python integrierten JSON-Verarbeitung kann die JSON-Zeichenfolge bis zu einem gewissen Grad lesbar gemacht werden. Bei großen Datenmengen erscheint sie jedoch als lange, durchgehende Linie, die für das menschliche Auge schwer zu erkennen ist.

Um JSON-Daten benutzerfreundlicher zu machen, können wir den Parameter indent verwenden, um schönes JSON auszugeben. Dies ist besonders nützlich, wenn Sie interaktiv in der Konsole programmieren oder protokollieren:

>>> import json
>>> print(json.dumps(data))# No indention
{"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]}
>>> print(json.dumps(data, indent=2))# With indention
{
"status": "OK",
"count": 2,
"results": [
{
"age": 27,
"name": "Oz",
"lactose_intolerant": true
},
{
"age": 29,
"name": "Joe",
"lactose_intolerant": false
}
]
}
Nach dem Login kopieren

Ebenso kann die Verwendung des integrierten pprint-Moduls dazu führen, dass alles andere besser gedruckt wird.

05 FizzBuzz lösen

Vor einiger Zeit hat Jeff Atwood eine einfache Programmierübung namens FizzBuzz vorgestellt. Das Problem wird wie folgt zitiert:

Schreiben Sie ein Programm, das die Zahlen 1 bis 100 ausgibt. Vielfache von 3 geben „Fizz“ aus, um es zu ersetzen diese Zahl, 5 Gibt „Buzz“ für Vielfache von und „FizzBuzz“ für Zahlen aus, die beide Vielfache von 3 und 5 sind.

Hier ist eine kurze, interessante Möglichkeit, dieses Problem zu lösen:

for x in range(1,101):
print"fizz"[x%3*len('fizz')::]+"buzz"[x%5*len('buzz')::] or x
Nach dem Login kopieren

06 if-Anweisung in Reihe

print "Hello" if True else "World"
>>> Hello
Nach dem Login kopieren

07 Verbindung

Der letzte Weg unten ist sehr cool, wenn man zwei Objekte unterschiedlichen Typs bindet.

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1
Nach dem Login kopieren

08 Numerischer Vergleich

Das ist eine so tolle Kurzschriftmethode, die ich in vielen Sprachen gesehen habe

x = 2
if 3 > x > 1:
 print x
>>> 2
if 1 < x > 0:
 print x
>>> 2
Nach dem Login kopieren

09 Zwei Listen gleichzeitig iterieren

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
 print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots
Nach dem Login kopieren

10 Indizierte Listeniteration

teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots
Nach dem Login kopieren

11 Listenverständnis

Bei einer gegebenen Liste können wir die gerade Listenmethode ausmerzen:

numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
if number%2 == 0:
even.append(number)
Nach dem Login kopieren

verwandelt sich in Folgendes:

numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]
Nach dem Login kopieren

12 Die Wörterbuchableitung

ähnelt der Listenableitung, das Wörterbuch kann die gleiche Aufgabe erfüllen:

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}
Nach dem Login kopieren

13 Initialisierung der Liste Wert

items = [0]*3
print items
>>> [0,0,0]
Nach dem Login kopieren

14 Liste in String konvertieren

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'
Nach dem Login kopieren

15 Element aus Wörterbuch abrufen

Ich gebe zu, dass der Try/Except-Code nicht elegant ist, aber hier ist eine einfache Methode: Versuchen Sie, den Schlüssel im Wörterbuch zu finden, falls der entsprechende vorhanden ist Einer wird nicht gefunden. Der Wert wird mithilfe des zweiten Arguments auf seinen Variablenwert gesetzt.

data = {'user': 1, 'name': 'Max', 'three': 4}
try:
 is_admin = data['admin']
except KeyError:
 is_admin = False
Nach dem Login kopieren

Ersetzen Sie dies durch:

data = {'user': 1, 'name': 'Max', 'three': 4}
is_admin = data.get('admin', False)
Nach dem Login kopieren

16 Holen Sie sich eine Teilmenge einer Liste

Manchmal benötigen Sie nur einige Elemente in einer Liste. Hier sind einige Möglichkeiten, eine Teilmenge einer Liste zu erhalten.

x = [1,2,3,4,5,6]
#前3个
print x[:3]
>>> [1,2,3]
#中间4个
print x[1:5]
>>> [2,3,4,5]
#最后3个
print x[3:]
>>> [4,5,6]
#奇数项
print x[::2]
>>> [1,3,5]
#偶数项
print x[1::2]
>>> [2,4,6]
Nach dem Login kopieren

Zusätzlich zu den in Python integrierten Datentypen enthält das Erfassungsmodul auch einige spezielle Anwendungsfälle. Counter ist in manchen Situationen sehr praktisch. Wenn Sie am diesjährigen Facebook HackerCup teilgenommen haben, können Sie sogar feststellen, dass es praktisch ist.

from collections import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
Nach dem Login kopieren

17 Iterationstools

Wie die Sammlungsbibliothek gibt es auch eine Bibliothek namens itertools, mit der bestimmte Probleme effizient gelöst werden können. Einer der Anwendungsfälle besteht darin, alle Kombinationen zu finden, die Ihnen alle unmöglichen Kombinationen von Elementen in einer Gruppe anzeigen können False sind globale Variablen, daher:

from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
print game
>>> ('Packers', '49ers')
>>> ('Packers', 'Ravens')
>>> ('Packers', 'Patriots')
>>> ('49ers', 'Ravens')
>>> ('49ers', 'Patriots')
>>> ('Ravens', 'Patriots')
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonTeilen Sie 18 Tipps zur effizienten Python-Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage