From 1181c3a85687ca87a9dcf7e45ba0d77fd81c7c3f Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Tue, 15 Dec 2020 15:08:33 +0100 Subject: [PATCH] =?UTF-8?q?Lambda:=20P=C5=99=C3=ADklady?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 10-lambda/jmena.py | 15 +++++++++++++++ 10-lambda/redukce.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 10-lambda/jmena.py create mode 100644 10-lambda/redukce.py diff --git a/10-lambda/jmena.py b/10-lambda/jmena.py new file mode 100644 index 0000000..4c6943e --- /dev/null +++ b/10-lambda/jmena.py @@ -0,0 +1,15 @@ +# Seřadí primárně podle příjmení, sekundárně podle jména +def serad(jmena): + + def klic(jp): + jmeno, prijmeni = jp.split() + return prijmeni, jmeno + + return sorted(jmena, key=klic) + +# Jiné řešení +def serad2(jmena): + return sorted(jmena, key=lambda jp: jp.split()[::-1]) + +jmena = ["Vodník Česílko", "Jelen Větrník", "Loupežník Rumcajz", "Kapr Kulda"] +print(serad(jmena)) diff --git a/10-lambda/redukce.py b/10-lambda/redukce.py new file mode 100644 index 0000000..45e2fdb --- /dev/null +++ b/10-lambda/redukce.py @@ -0,0 +1,28 @@ +def red(s, f): + x = s[0] + for i in range(1, len(s)): + x = f(x, s[i]) + return x + +def prvni_nenulovy(s): + + def f(x, y): + if x != 0: + return x + else: + return y + + return red(s, f) + +# Zde předpokládáme, že seznam neobsahuje None +# (dalo by se to obejít tak, že bychom místo None použili jakýkoliv +# nově vytvořený objekt, třeba prázdný seznam) +def vsechny_stejne(s): + + def g(x, y): + if x is None or x != y: + return None + else: + return x + + return red(s, g) is not None -- GitLab