Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Notizen/Tricks/Lektionen/Nuancen

Python-Notizen/Tricks/Lektionen/Nuancen

WBOY
WBOYOriginal
2024-09-03 11:00:36678Durchsuche

Python notes/tricks/lessons/nuances

Ich habe einen Beitrag über C++-Tricks erstellt und wollte über viele weitere Tricks schreiben, die ich kenne, da die meisten davon in Python und JS sind, obwohl ich in C++ codiert habe noch viel mehr, aber hier sind sie jedenfalls. Ich beginne mit trivialen Dingen über die grundlegende Python-Syntax, aber es gibt einige Dinge, die Anfängern nicht bekannt sind, die ich mit einem Stern markiert habe ⭐️:

1. Listen

  • Eine geordnete Sammlung von Elementdatenstruktur
  • Kann mehrere Typen haben
  • aa = ["Apfel", 'd', 3, 9.3]

Initialisierung:

  1. a = [1, 2]
  2. a = list()
  3. a = list([2, 3])
  4. [0]*5
  5. concat_list = list1 + list2

Auf Elemente zugreifen ⭐️

  • 0 ... n-1 und -n ... -1

Funktionen

  • len(list1)
  • a.append(value)
  • a.insert(index, value): Fügt einen Wert am Index ein und verschiebt alles nach rechts
  • a.pop(): gibt den Endwert zurück und entfernt ihn
  • a.remove(value): Wenn der Wert nicht vorhanden ist, erhalten Sie einen ValueError
  • a.clear()
  • a.reverse(): kehrt an Ort und Stelle um
  • a.sort(): ändert das Original
  • b = sortiert(a): ändert das Original nicht

Schneiden ⭐️

Eine einfache Möglichkeit, auf Unterarrays einer Liste zuzugreifen

  • SlicedList = a[1:5]: Beginnen Sie bei Index 1 und stoppen Sie bei Index 5, Index 5 ist ausgeschlossen
  • SlicedList = a[:3]: von 0 ... 2
  • SlicedList = a[1:3]: von 1 bis 2
  • SlicedList = a[:]: Dupliziere die gesamte Liste
  • SlicedList = myList[::2]: Schrittindex, jedes zweite Element, beginnend mit dem ersten, grundsätzlich i=0;i
  • SlicedList = myList[::-1]: nette Möglichkeit, eine Liste umzukehren

Eine Liste kopieren

1. Flache Kopie

  • a = [1, 2, 3]
  • b = a

Eine Änderung ändert auch die andere, da es sich bei beiden um dieselben Speicherzuordnungen handelt

2. Deep Copy ⭐️

3 Möglichkeiten:

  1. b = a.copy()
  2. b = Liste(a)
  3. b = a[:]

Listenverständnis

Ich werde mit einigen grundlegenden Listenverständnissen beginnen, aber sie werden schnell weniger trivial.

  • values ​​= [x+1 für x im Bereich(10)] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- Werte = [x für x in Bereich(51) wenn x % 2 == 0]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

Verständnis verschachtelter Listen ⭐️

Reduzieren einer Liste von Listen oder einer 2D-Matrix
Verständnis verschachtelter Listen: Reduzieren einer Matrix (einer Liste von Listen) ⭐️

Beispiel: Matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • Andere Listenverständnisse:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • Diese Syntax ->
    „Gerade“ wenn x % 2 == 0 sonst „Ungerade“ ist an vielen Stellen in Python gültig, Sie können es auch in Variablen einfügen, dies ist im Grunde ein ternärer Operator, aber ausführlicher

  • ⭐️ Um das Listenverständnis zu verstehen, achten Sie immer auf die linke und rechte Seite des Ausdrucks. Alle verschachtelten Schleifen verlaufen von links nach rechts. Wenn sich das if else auf der linken Seite der for-Schleife befindet, prüfen wir, welchen Wert es hat Wollen wir abhängig von der if else-Bedingung einfügen, während wir versuchen, aus der Liste zu filtern, wenn sich die for-Schleife rechts befindet

  • Um beispielsweise eine 5x5x5-Liste zu erstellen: ⭐️

values = [[[num+1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ Suchen Sie nach der äußersten for-Schleife. Alles, was sich links davon befindet, wird zum Array „values[]“ hinzugefügt, und die Bedeutung dieser Syntax: for _ in range(5) ist, dass ich alles tun möchte, was aktiviert ist links von dieser for-Schleife 5 Mal (da mir der Wert der Iteratorvariablen bei jeder Iteration egal ist)

  • Funktionen im Verständnis: Werte = [x**2 für x in Werten, wenn gültig(x)]

Wörterbuchverständnis

Wenn wir Paare haben = [("a", 1), ("b", 2)]: eine Liste von Paaren oder Tupeln

-> my_dict = {k:v für k, v in Paaren}: Werteentpacken, damit dies funktioniert, muss jedes „Paar“ in Paaren genau 2 Entitäten haben

Verständnis einstellen

Seien Zahlen = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x for x in nums}: Python erkennt, dass dies eine Menge sein sollte, da Sie keine Schlüssel haben

Ich werde das schreiben, sobald ich etwas Zeit habe, aber Sie können sie trotzdem hier nachlesen: AdvancedPythonConcepts. Dies ist mein Git-Repo, in dem ich Python-Konzepte dokumentiert habe, als ich sie zum ersten Mal gelernt habe. Ich werde diesen Beitrag auf der Grundlage dieses Repos schreiben, sobald ich Zeit habe...

Das obige ist der detaillierte Inhalt vonPython-Notizen/Tricks/Lektionen/Nuancen. 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