Seite 3 von 3

Re: Code-Golf

Verfasst: Donnerstag 16. Januar 2025, 21:46
von __blackjack__
Wobei der Punktoperator halt genau das ist: ein Operator — da kann man auch einfach Leerzeichen drum herum setzen:

Code: Alles auswählen

In [135]: "Hallo"  .  upper()
Out[135]: 'HALLO'
Also kann man das auch so schreiben, mit einem Punkt und der gleichen Zeichenanzahl:

Code: Alles auswählen

f=lambda w:sorted(w,key=0 .__eq__)

Re: Code-Golf

Verfasst: Donnerstag 16. Januar 2025, 21:53
von narpfel
Die Version hier gefällt mir noch ein bisschen besser:

Code: Alles auswählen

f=lambda w:sorted(w,key=.0.__eq__)
:mrgreen:

Man kann hier sowohl ein `int` als auch ein `float` benutzen, weil `0 == 0.0`.

Re: Code-Golf

Verfasst: Freitag 1. August 2025, 19:07
von Dennis89
Bekommt ihr das kürzer hin? Jede Zahl einzeln quadrieren, die Ergebnisse zusammen setzen und ein Integer zurück geben.

Code: Alles auswählen

s=lambda n:int("".join(map(lambda x:str(int(x)**2), str(n))))


def main():
    assert s(9119) == 811181


if __name__ == '__main__':
    main()
Grüße
Dennis

Edit: ohne `map` ist's kürzer:

Code: Alles auswählen

s=lambda n:int("".join(str(int(x)**2) for x in str(n)))

Re: Code-Golf

Verfasst: Freitag 1. August 2025, 21:21
von __blackjack__
Man kann das Leerzeichen vor ``for`` noch weg lassen.

Re: Code-Golf

Verfasst: Samstag 2. August 2025, 07:05
von Dennis89
Ja Mist, übersehen :)

Re: Code-Golf

Verfasst: Samstag 2. August 2025, 13:31
von Dennis89
Im letzten Moment noch auf `key` in `sorted` gekommen:

Code: Alles auswählen

h=lambda n:"".join(f"{i[-1]} {i[0]}"for i in[sorted(n.split(),key=int)])




def main():
    assert h("8 3 -5 42 -1 0 0 -9 4 7 4 -4") == "42 -9"
    assert h("42") == "42 42"


if __name__ == '__main__':
    main()
Rückgabe der größten, gefolgt von der kleinsten Zahl, als String mit Leerzeichen getrennt. Wenn nur ein Wer übergeben wird, soll dieser zwei mal zurück gegeben werden.

Grüße
Dennis

Re: Code-Golf

Verfasst: Samstag 2. August 2025, 13:42
von narpfel

Code: Alles auswählen

lambda n:f"{(x:=sorted(n.split(),key=int))[-1]} {x[0]}"

Re: Code-Golf

Verfasst: Samstag 2. August 2025, 17:29
von Dennis89
Yeah, coole Lösung :)