Skip to content

List comprehensions

Python3
  • Fangen wir mal an, mit einer Übersetzung. Mein Englisch ist nicht perfekt, so muss ich ab und zu mal was nachschauen.

    7a6d9323-81a5-451b-86c4-387ca41fe497-grafik.png Quelle: deepl.com

    Ok, jetzt haben wir eine Vorstellung davon, was es machen soll. Ein Beispiel wie ich das so als Anfänger gemacht habe.

    # Delete key_list
    keys_list = []
    
    # redo keys_list
    for key in backups:
        keys_list.append(key)
    

    Finde ich jetzt eigentlich gut lesbar und verständlich. Aber mit List comprehensions soll es eleganter sein.

    Die Listen-Abstraktion, eigentlich auch im Deutschen besser als "List Comprehension" bekannt, ist eine elegante Methode Mengen in Python zu definieren oder zu erzeugen.
    Quelle: https://www.python-kurs.eu/list_comprehension.php

    In meiner Datei speicher ich die Daten der Backups mit einem Key. Hier mal ein Add, aus diesem Beispiel

    backups[(BackupList.last_key()) + 1] = BackupList(name, repository)
    

    Damit man zum Beispiel einen Eintrag jetzt editieren oder auch löschen kann, muss ich den Key kennen. Mit dem obigen Beispiel erhält man jetzt alle Keys, die in dem Objekt enthalten sind.

    Ausgabe

     ['1', '7', '8', '10', '14', '17', '18', '20']
    

    Diese Daten werden in eine neue Liste keys_list geschrieben.

    Das kann man dann mit List comprehensions so lösen.

    # Delete key_list
    keys_list = []
    
    # redo keys_list
    [keys_list.append(key) for key in backups]
    

    In folgendem Video wird das exzellent erklärt. Unbedingt als Einsteiger anschauen.

    Diese List Comprehensions können auch noch eine Condition (if) beinhalten. In o.g. Video wird das an diesem Besipiel sehr anschaulich vermittelt.

    67b88929-3cc0-4a66-b438-45a6807ca7b0-grafik.png
    Besonders die Ergänzung, als Erklärung, mit SELECT, FROM und WHERE sollte es allen, die schon mal mit einer MySQL Dataenbank gearbeitet haben, einfacher machen.

    Eine weitere sehr gute Anleitung dazu findet man auf

    Viel Spaß beim Coden 🙂

  • Flask Projekt auf einem anderen Rechner installieren

    Python3
    1
    0 Stimmen
    1 Beiträge
    120 Aufrufe
    Niemand hat geantwortet
  • Vorstellung Restic UI Flask

    Restic UI Flask
    1
    0 Stimmen
    1 Beiträge
    163 Aufrufe
    Niemand hat geantwortet
  • Flask - Erste Schritte

    Allgemeine Diskussionen
    3
    0 Stimmen
    3 Beiträge
    208 Aufrufe
    FrankMF

    Mein vorhandenes Projekt war doch etwas größer als ich gedacht hatte. Also musste ich mehr Zeit aufwenden um es nach Flask zu transferieren. Nach einiger Zeit hatte sich eine ganz ansehnliche Zahl von Dateien angesammelt und es kam wie es kommen musste, ich wusste manchmal nicht mehr, welches File ich anfassen musste. Chaos kam auf 🙂

    So fing ich an ein wenig zu recherchieren und kam auf die Funktion Blueprint von Flask. Mich ein wenig eingelesen, ChatGPT mal eben um ein Beispiel gebeten und dann angefangen die Applikation entsprechend umzubauen.

    Auch das hat Zeit gekostet. Aber, jetzt habe ich ein aufgeräumtes Projekt, was es mir wesentlich einfacher macht, daran zu arbeiten.

    5226e90d-aa20-4b20-93af-e50f8f841880-grafik.png

    Wenn ihr also mal vorhabt, so was zu coden, halte ich es für sinnvoll das Projekt von Anfang an zu strukturieren. Und zum Schluss noch ein Screenshot zum Stand des Projektes.

    a7981ffc-0f93-41f4-93e2-c914fdba5e43-grafik.png

    Und weiter geht es, ist nämlich noch nicht fertig 😀

  • Ruff - Linting

    Python3
    1
    0 Stimmen
    1 Beiträge
    76 Aufrufe
    Niemand hat geantwortet
  • Vorstellung Restic UI als PyWebIO Version

    PyWebIO
    7
    0 Stimmen
    7 Beiträge
    175 Aufrufe
    FrankMF

    Link Preview Image Merge branch 'master' into 'main' (45c83cd8) · Commits · Frank / restic_ui_pywebio · GitLab

    Fix some bugs See merge request Bullet64/restic_ui_pywebio!71

    favicon

    GitLab (gitlab.com)

  • ResticUI with PyWebIO - Repo

    PyWebIO
    1
    0 Stimmen
    1 Beiträge
    92 Aufrufe
    Niemand hat geantwortet
  • PyWebIO - Footer bearbeiten

    PyWebIO
    1
    0 Stimmen
    1 Beiträge
    87 Aufrufe
    Niemand hat geantwortet
  • Python3 - VSCodium Language Settings

    Python3
    3
    0 Stimmen
    3 Beiträge
    127 Aufrufe
    FrankMF

    Ich habe da jetzt gestern stundenlang mit rum gespielt, insbesondere Deinstallation, Neuinstallation, VSCode Installation usw. Das ging einfach nicht.

    Irgendwo meine ich dann gelesen zu haben, das VSCode auf python 3.9 festgenagelt ist und deswegen so einige Dinge nicht gehen.

    Nagelt mich darauf nicht fest, ich bin in dieser Coding Welt kein Profi.

    Dann fiel mir ein, das ich schon vor einigen Monaten mal kurz einen Blick in Pycharm geworfen hatte. Gefiel mir damals gar nicht.

    Das habe ich heute mal auf die Platte geworfen um zu schauen, ob das vernünftig mit dem o.g. Problem umgehen kann.

    6f1c3906-05a3-4126-81d4-7fdf6aa27faa-grafik.png

    Puuuh, da kann man ja noch viel mehr einstellen als bei VSCode, oder mindestens ähnlich viel. Das kann einen ganz schön überfordern. Also Stück für Stück die nächsten Tage.

    Was ist mir positiv aufgefallen?

    Wenn ich VSCodium neu installiert habe, habe ich unheimlich mit Python Versionen, pipenv usw. zu kämpfen gehabt. Bis da mein Projekt wieder lief, konnte schon mal was Zeit vergehen.

    Mit Pycharm Ordner ausgewählt, angeklickt das man dem Coder vertraut. Noch eine Python Version ausgewählt, danach fragt er das er eine pipenv Umgebung gefunden hat und diese nutzen möchte. Ja angeklickt und fertig. Keine zwei Minuten und das Projekt lief wieder 🤓

    Erster Git Commit ging auch sofort und ohne Murren.

    Schon mal ganz viele Pluspunkte gesammelt.

    Was mich aktuell beschäftigt, ist der Tab Problems, da hatte ich vorher deutlich weniger. Da muss ich mich noch was einarbeiten und schauen, wo man das alles einstellen kann.

    Ich halte euch auf dem Laufenden..

    Vielleicht fliegt ja das VSCo** Zeug runter!? Mal sehen..