Die Suche ergab 5968 Treffer

von snafu
Donnerstag 21. November 2019, 14:54
Forum: Ideen
Thema: #pydesw: Programmierung eines Brettspiels
Antworten: 74
Zugriffe: 10566

Re: #pydesw: Programmierung eines Brettspiels

Hier läuft ja schon lange nichts mehr. Zumindest ich für meinen Teil habe auch kein Interesse mehr an einem weiteren Projekt in dieser Form. 😒
von snafu
Montag 18. November 2019, 21:27
Forum: Allgemeine Fragen
Thema: Alle Schlüssel mit höchstem Wert im `dict()` ausgeben
Antworten: 11
Zugriffe: 147

Re: Alle Schlüssel mit höchstem Wert im `dict()` ausgeben

Geht auch kürzer:

Code: Alles auswählen

highest = max(pairs.values())
print([key for key in pairs if pairs[key] == highest])
Und falls nur ein Schlüssel gefragt wäre:

Code: Alles auswählen

print(max(pairs, key=pairs.get))
von snafu
Sonntag 17. November 2019, 18:10
Forum: Wissenschaftliches Rechnen
Thema: Zeichenkette in Pandas DataFrame ersetzen
Antworten: 2
Zugriffe: 53

Re: Zeichenkette in Pandas DataFrame ersetzen

Es sollte funktionieren, wenn du es als Regex-Pattern formulierst (dabei das +-Zeichen escapen):

Code: Alles auswählen

df.replace(r"\+/-", "±", regex=True)
von snafu
Freitag 15. November 2019, 05:59
Forum: Allgemeine Fragen
Thema: Anfängerfrage - Zählvariable
Antworten: 17
Zugriffe: 254

Re: Anfängerfrage - Zählvariable

Ich würde da auf itertools.count() zurückgreifen und stumpf eine globale Variable anlegen: from itertools import count _user_counter = count(1) def hallo(): print(f"Hallo Nutzer {next(_user_counter)}") Der Zugriffsschutz vor möglichen Änderungen von außen spielt für mich keine Rolle, oder sind wir h...
von snafu
Donnerstag 14. November 2019, 15:35
Forum: Allgemeine Fragen
Thema: Summenzeichen und Wurzel in Python
Antworten: 6
Zugriffe: 156

Re: Summenzeichen und Wurzel in Python

Ich würde es auch über die Potenz lösen. Finde ich lesbarer.
von snafu
Mittwoch 13. November 2019, 07:46
Forum: Allgemeine Fragen
Thema: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen
Antworten: 35
Zugriffe: 661

Re: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen

Hier nun doch mal als Dict Comprehension:

Code: Alles auswählen

def make_mileages(vehicles, excludes={}):
    return {
        kind: dict.fromkeys(remaining, "unknown")
        for kind, models in vehicles.items()
        if (remaining := models.keys() - excludes.get(kind, []))
    }
von snafu
Mittwoch 13. November 2019, 06:02
Forum: Allgemeine Fragen
Thema: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen
Antworten: 35
Zugriffe: 661

Re: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen

Man kann natürlich auch bei meinem Beispiel einfach ein leeres Wörterbuch in der Signatur für "excludes" nehmen. Dann spart man sich anfangs den Test samt Ersetzung und somit zwei Zeilen.
von snafu
Dienstag 12. November 2019, 22:53
Forum: Allgemeine Fragen
Thema: Zeilenbreite vorgeben Py 3.8
Antworten: 9
Zugriffe: 173

Re: Zeilenbreite vorgeben Py 3.8

Und Python selbst hat das textwrap-Modul:
https://docs.python.org/3/library/textwrap.html
von snafu
Dienstag 12. November 2019, 12:10
Forum: Allgemeine Fragen
Thema: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen
Antworten: 35
Zugriffe: 661

Re: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen

Och ja, tupleobject.c und listobject.c sind sich auch sehr ähnlich und trotzdem gibt es keine gemeinsame Quelldatei als Basis. Das muss man nicht verstehen und auch nicht, warum die Schlüssel teilweise mächtiger als ein Set sind... 🤷🏿‍♂️
von snafu
Dienstag 12. November 2019, 07:10
Forum: Allgemeine Fragen
Thema: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen
Antworten: 35
Zugriffe: 661

Re: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen

Nochmal etwas umgeformt und mit der neuen Python 3.8 Syntax: def make_mileage(vehicles, excludes=None): if excludes is None: excludes = {} mileage = {} for kind, models in vehicles.items(): if models := models.keys() - excludes.get(kind, []): mileage[kind] = dict.fromkeys(models, "unknown") return m...
von snafu
Dienstag 12. November 2019, 06:20
Forum: Allgemeine Fragen
Thema: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen
Antworten: 35
Zugriffe: 661

Re: Zweidimensionales Dictionary mit Daten aus einem dreidimensionalen Dictionary erstellen

Ist es nicht besser, wenn "excludes" eine Liste ist? Dann könnte man mit Sets arbeiten: def make_mileage(vehicles, excludes=None): if excludes is None: excludes = {} mileage = {} for kind, models in vehicles.items(): if kind in excludes: models = set(models) - set(excludes[kind]) if models: mileage[...
von snafu
Montag 11. November 2019, 17:23
Forum: Allgemeine Fragen
Thema: for Schleife, Liste filtern
Antworten: 7
Zugriffe: 156

Re: for Schleife, Liste filtern

Ich würde ja eine Funktion für die Validierung basteln und davon abhängig die Liste aufbauen:

Code: Alles auswählen

def is_valid(n):
    try:
        return 1 <= n <= 50
    except TypeError:
        return False

numbers = [10, 0, -10, "100", "0", 1.0, -47.11, 42.0815]
print([n for n in numbers if is_valid(n)])
von snafu
Sonntag 10. November 2019, 19:35
Forum: Codesnippets
Thema: Buchstabenverdreher meine lösung
Antworten: 6
Zugriffe: 120

Re: Buchstabenverdreher meine lösung

Mag sein, spart aber den list()-Aufruf und wird übrigens auch in der Doku so empfohlen: To shuffle an immutable sequence and return a new shuffled list, use sample(x, k=len(x)) instead. https://docs.python.org/3/library/random.html#random.shuffle Aber man muss natürlich nicht alles machen, was die D...
von snafu
Sonntag 10. November 2019, 19:27
Forum: Wissenschaftliches Rechnen
Thema: Sage: Ausgabe einer Folge (Collatz) im Display und als txt-Ausgabedatei
Antworten: 5
Zugriffe: 100

Re: Sage: Ausgabe einer Folge (Collatz) im Display und als txt-Ausgabedatei

Man kann die Reihe auch einfach als Liste zwischenspeichern, sofern sie nicht übelst groß ist und dann zweimal print() anwenden:

Code: Alles auswählen

series = list(f(X, N))
print(*series, sep=', ')
with open(dateiname) as outfile:
    print(*series, sep='\n', file=outfile)
von snafu
Sonntag 10. November 2019, 18:38
Forum: Codesnippets
Thema: Buchstabenverdreher meine lösung
Antworten: 6
Zugriffe: 120

Re: Buchstabenverdreher meine lösung

Anstatt shuffle() könnte man hier auch sample() nehmen:

Code: Alles auswählen

from random import sample

def get_mixed(word):
    if len(word) <= 2:
        return word
    mixed = sample(word[1:-1], len(word) - 2)
    return word[0] + ''.join(mixed) + word[-1]