„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Python-Notizen/Tricks/Lektionen/Nuancen

Python-Notizen/Tricks/Lektionen/Nuancen

Veröffentlicht am 01.11.2024
Durchsuche:891

Python notes/tricks/lessons/nuances

Ich habe einen Beitrag zu C-Tricks verfasst 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 = Liste([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 Original
  • b = sortiert(a): ändert das Original
  • nicht

Schneiden ⭐️

Eine einfache Möglichkeit, auf Unterarrays einer Liste zuzugreifen

  • SlicedList = a[1:5]: Start bei Index 1 und Stopp 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 Speicherzuweisungen 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 ⭐️

Eine Liste von Listen oder eine 2D-Matrix reduzieren
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? Wenn sich die for-Schleife rechts befindet, versuchen wir, aus der Liste zu filtern

  • Zum Beispiel zum Erstellen einer 5x5x5-Liste: ⭐️

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 die linke Seite dieser for-Schleife fünfmal (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

Sei nums = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x for x in nums}: Python weiß, 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 lernte. Ich werde diesen Beitrag basierend auf diesem Repo schreiben, sobald ich Zeit habe...

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/yashdevs/python-tricks-5b0c?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3