diff --git a/10-lambda/jmena.py b/10-lambda/jmena.py new file mode 100644 index 0000000000000000000000000000000000000000..4c6943ef9bc21c50e70ffc0603dd20025b64d572 --- /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 0000000000000000000000000000000000000000..45e2fdb95df38d6163d6467701834a77b803da1a --- /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