Filterfunktion für eine Liste

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • WillyR_aus_C Einmal tief durchatmen bitte und dann überlegen ob es wirklich einen Grund gibt persönlich beleidigend zu werden.


    Warum sollte man ein Egoproblem haben wenn man auf Beiträge von Dir antwortet? Und was heisst „einmischen“? Ich habe Code gesehen und eine Vereinfachung vorgeschlagen. Das war nicht einmal eine Antwort auf einen Deiner Beiträge. Das ist keine geschlossene Fragerunde, sondern ein öffentliches Forum. Auch Beiträge in Themen die von Dir gestartet wurden, werden nicht nur von Dir gelesen, sondern auch von anderen. Auch nach 5 Monaten und später. Die Anmerkungen zu der Funktion von Dennis89 ist zeitlos — die hätte damals Sinn gemacht, die macht heute Sinn, und sehr wahrscheinlich nächstes Jahr auch noch.

    „Eat the rich — the poor are full of preservatives.“ — Rebecca ”Becky” Connor, The Connors

  • Guten Morgen __blackjack__,


    Du kannst von mir auch in 20 Jahren noch irgendwelchen Code optimieren. Mir egal, wenn du nichts anderes zu tun hast.
    Ich bin auch immer wieder Dankbar, dass es solche fähigen Mitglieder wie Dennis89 gibt.
    Nur leider ist es auch so, und das ist offensichtlich nicht nur mir aufgefallen, dass es in der Zeit wo beide Systeme Buster und Bullseye parallel nebeneinander und damit auch unterschiedliche Python-Versionen der 3.x. nebeneinander vorkommen, nicht jeder Code auf beiden Systemen lauffähig ist.

    Auch das nachinstallieren oder Upgraden über PIP von irgendwelchen Zusatzpaketen funktioniert nicht immer oder fehlerfrei.
    Sicherlich aus der Sicht das der Code dann später mal, in ein paar Jahren auf wieder neuen Softwareständen egal von Python, bzw. der Zusatzbibliotheken mag das bis zu einem gewissen Punkt noch Sinn machen. Nur sehe ich das Problem wo ganz anders. Es ist der ständige evolutionärere Wechsel oder Fortschritt bei den einzelnen Paketen selber. Denn keiner kann dir sagen, ob deine eingebrachten Codeänderungen in absehbarer Zeit noch so lauffähig sein werden.
    Das sieht man auch hier schon zum Teil sehr deutlich. Einige Tutorials die schon ein paar Jahre auf dem Buckel haben, lass sich heute gar nicht mehr eins zu eins umsetzen. Oder was sicherlich auch keiner will, dass man hier ständig alle Codes die veröffentlicht wurden auf den neusten Stand bringt. Das wäre eine Mammutaufgabe für alle und jeden der hier einen Code eingestellt hat.
    Daher vertrete ich die Meinung, der du nicht zustimmen musst, dass man den Code der wenn angegeben für ein bestimmtes System gemacht ist, wo auch die SW Stände bekannt sind, so lässt.
    Falls dann doch mal einer wieder so eine "veraltete" Version benötigt, auch die Chance hat, einen wiederverwendbaren Code vorzufinden. Wenn dann ohne Angaben von SW Versionen immer und immer wieder nur Nachbesserungen und Optimierungen am Ende eines Threads zu finden sind, aber der Hilfesuchende dann über ein Vielzahl von Programmcode-Versionen stolpert, die dann auch nicht mehr funktionieren, dann ist das Contra-Produktiv.
    Das in der von mir bei diesem Projekt genutzten Version das von Dennis89 vorgeschlagene Upgrade von more-itertools nicht umsetzbar war, sind alle darauf basierenden Optimierung schlussendlich genauso Humbug.
    Denn wenn man Optimierungen durchführt wie du, sollte man auch ehrlicher Weise dazuschreiben mit oder für welchen Versionen wie hier von more-itertools gemacht wurden. Der nächste Hilfesuchende schnappt sich die letzte veröffentlichte Version und stellt fest, eh- das geht ja bei mir auch nicht. Ob und was derjenige dann von dem Forum hält oder denkt, ob dann solche Gedanken aufkommen, was sind den das hier für Pfeifen der Code läuft doch gar nicht, stellen wir mal ganz hinten an !
    Ich vertrete die Meinung, und das sage ich ganz deutlich, dass man auch mal einen Code der für einen gewissen SW Stand geschrieben wurde auch so ruhen lassen sollte, damit die Nachwelt wenn angegeben eine Chance hat. Weil mir ist es hier auch schon einige Male passiert, dass ich mir ein Codeschnipsel aus der Vergangenheit nehmen wollte, aber feststellen musste das dieser so gar nicht mehr lauffähig ist. Daher war ich so erbost. Vielleicht ist jeden oder allem mehr geholfen, wenn man auch die Versionen der einzelnen SW Stände mit angibt, und es dann darauf beruhen lässt.
    Denn wenn man oder auch du ehrlich zu dir selber bist, müsste man hier, was aber keiner machen wird, alle veralteten Python2 Codes entfernen.
    Ein Code der hier veröffentlicht wurde ist zu einer Zeit entstanden, wo die Rahmenbedingungen einen gewissen Stand hatten, und das sollte man auch so respektieren.

    es grüßt euer
    Willy

  • Hallo,


    Quote

    Ich bin auch immer wieder Dankbar, dass es solche fähigen Mitglieder wie Dennis89 gibt.

    Ja, aber frag' doch auch mal Dennis89 wie er seine Pythonskills im Vergleich zu denen von __blackjack__ sieht...


    Wenn das Projekt für dich z.Zt. abgeschlossen ist - ok. Deswegen musst du aber nicht direkt hier rumprollen, nur weil jemand X Tage / Wochen / Monate später noch besseren Pythoncode als den zuvor gezeigten postet. Selbst wenn du ihn nicht (mehr) brauchst - du bist nicht alleine und auch andere könnten irgendwann mal von der Lösung profitieren.


    Gruß, noisefloor

  • Guten Morgen noisefloor,

    Ich habe meine Beweggründe dargelegt, und ich finde es schon etwas merkwürdig, dass man hier so wie du nur einzelne Zeilen Zeilen zitierst aber den Gesamtzusammenhang völlig außer acht lässt.
    Ja, diese Kritik ist von mir wirklich ernst gemeint, denn die Erweiterung um oder auf einen neuen Stand von more-itertools hat bei mir nicht funktioniert. Warum auch immer !?
    Damit war der von Dennis89 zuletzt gepostete Code siehe #12 schon nicht mehr auf meinem System lauffähig. Somit ist auch der nachfolgende oder die Ergänzung betreffende Code nicht lauffähig !
    Deshalb hatte ich in meiner Erläuterung an __blackjack__ auch besonders auf die Zusammenhänge mit den möglichen Unterschieden in Software
    -Ständen hingewiesen !
    Selbst wenn, ich mache gerne noch einmal das Experiment mit dem selben Ausgangssystem aber dann poste ich hier dann auch ohne wenn und aber, die Fehlermeldungen dass dieser Code, mit der Änderung von __blackjack__ genauso wenig lauffähig ist, wie das unmodifizierte Original von Dennis89.

    Die Frage ist dann wohl auch die, was denken mögliche Betrachter dieses Threads in der Zukunft, wenn wie in dem Falle zwar eine Lösung mit anderen Mitteln existiert, aber alle darauf folgenden Version jedesmal nur mit einem Fehelrmeldungsbildschirm beantwortet werden ?
    Ich habe es darauf beruhen lassen, weil ich eine funktionierende Version hatte, und den Thread nicht mit einem Nachgeplänkle über mögliche Nach- / Neuinstallationen / Updates von irgendwelchen SW Paketen aufblähen wollte.
    Dann wüsste ich gerne von dir, was hat dann die Nachwelt davon, wenn dann noch weitere und weitere Codes hier angehängt werden, die unter bestimmten Voraussetzungen nicht lauffähig sind ?

    Ich werde hier auch keine Äußerungen tätigen, die Spekulativ entstehen könnten, wenn im ein paar Monaten / Jahren jemand anderes auf diesen Thread trifft, diesen liest, und sich fragt, warum funktionieren diese Modifikationen nicht.
    Da hier kein umfassender Software Support gefordert ist, sollte man und das hatte ich auch schon zum Ausdruck gebracht, gewisse Sachen einfach ruhen lassen. Zum Zeitpunkt der Erstellung waren sie lauffähig, und damit ist einfach mal gut !

    PS: Ich werde den Code von Dennis der damals schon mit einer Fehlermeldung abgebrochen wurde noch um die Erweiterung von __blackjack__ ergänzen und dann hier die nächsten Fehlermeldungen einstellten.

    es grüßt euer
    Willy

  • PS: Ich werde den Code von Dennis der damals schon mit einer Fehlermeldung abgebrochen wurde noch um die Erweiterung von __blackjack__ ergänzen und dann hier die nächsten Fehlermeldungen einstellten.

    Keine Ahnung was dein Problem ist.

    Denn das was __blackjack__ da gepostet hat:

    Python
    def check_list(values, min_value, max_value):
        return all_unique(values) and all(min_value <= value <= max_value for value in values)

    war einfach nur nochmal eine Komprimierung von dem was Dennis89 zuvor gezeigt hatte:

    Python
    def check_list(values, min_value, max_value):
        if all_unique(values):
            for value in values:
                if min_value > value or value > max_value:
                    return False
        else:
            return False
        return True

    Ob das more-itertool bei dir jetzt läuft oder nicht, ist in dem Fall doch egal.


    Das du hier so ein Brimborium wegen einem 2 Zeiler veranstaltest, kann ich leider nicht nachvollziehen. :D

    Es gibt auch Leute die die einwürfe von __blackjack__ gerne sehen. Wenn du das nicht tust, überlese es doch einfach.


    pypi - more_itertools

  • Guten Tag @keepfear

    Es ist gut, wenn man den gesamten Verlauf über #15, #16, #17, #18 ausblendet !

    Und ich werde mir auch von dir nicht verbieten lassen, dass ich hier meine Ansicht, die ich auch begründet habe hier schreibe !

    Dann sage doch gleich ganz offiziell du bist der GROSSE MEINUNGSDIKTATOR und das nur deine Meinung zählt. :thumbdown:

    es grüßt euer
    Willy

  • Hallo,

    Ja, aber frag' doch auch mal Dennis89 wie er seine Pythonskills im Vergleich zu denen von __blackjack__ sieht...

    Das beantworte ich gerne mal. Nicht dass da ein falscher Eindruck von mir entsteht.

    Also im Vergleich zu __blackjack__ weis ich nicht ob man bei mir von Pythonskills sprechen kann (und auch sonst sehe ich mich im Anfängerbereich). Die Gemeinsamkeiten der Codes beruhen sich meist auf die Schreibweise der Namen.

    Aber das was ich bis jetzt gelernt habe, habe ich unter anderem __blackjack__ zu verdanken. Einmal durch aktive Hilfestellung und einmal durch seine Codereviews :danke_ATDE:


    Naja ansonsten verabschiede ich mich aus diesem Thread wieder. Ich bin lieber hier um mich über Python, Pi und Co auszutauschen, anstatt an solchen Diskussionen teil zu nehmen.


    Grüße

    Dennis

    🎧 Mein Auto springt, mein Toaster kocht, es zwickt mich im Genick. Meine Frau ist eingelocht, die Spülmaschine tickt. Meine Telefonapperat brüllt mich seit Tagen an, er ist schon lange abgestellt im Bett liegt Peter Pan. Die Uhr geht falsch, die Haustür singt, mein Spiegel schlägt zurück - Ich werde noch verrückt, was solls ich bin entzückt. Die Badewanne zieht nicht ab ihr glaubt nicht was ich seh' - Sie ist voll Himbeerengelee 🎧

    Edited once, last by Dennis89: Rechtschreibung ().

  • WillyR_aus_C `more_itertools` ist eines der externen Module die ich in fast jedem Programm verwende und auch eines, das in der Python-Dokumentation zum `itertools`-Modul aus der Standardbibliothek explizit als Erweiterung genannt wird. Dort sind neben den Rezepten aus der Python-Dokumentation noch viele weitere nützliche, allgemein gehaltene Funktionen rund im iterierbare Objekte enthalten. Ich sehe kein Problem damit das zu verwenden und damit Lesern eine Installation via PIP zuzutrauen. Damit muss man sich sowieso auseinandersetzen wenn man in Python programmieren will, und IDEs wie Thonny oder PyCharm lassen den Benutzer das nicht nur über die GUI machen, sondern legen auch noch venvs pro Projekt an. Auch etwas mit dem man sich auseinandersetzen muss, wenn man ernsthaft in Python programmieren will.

    „Eat the rich — the poor are full of preservatives.“ — Rebecca ”Becky” Connor, The Connors