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

Teilen Sie 18 Tipps zur effizienten Python-Programmierung

WBOY
WBOYnach vorne
2023-04-16 15:25:031112Durchsuche

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

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

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]

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}

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

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

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

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

06 if-Anweisung in Reihe

print "Hello" if True else "World"
>>> Hello

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

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

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

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

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)

verwandelt sich in Folgendes:

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

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}

13 Initialisierung der Liste Wert

items = [0]*3
print items
>>> [0,0,0]

14 Liste in String konvertieren

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

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

Ersetzen Sie dies durch:

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

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]

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen