avp26/u2/list_ops.py
2026-10-01 20:14:18 +02:00

82 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

def append(list1, list2):
"""Vráti nový zoznam obsahujúci všetky prvky list1, po ktorých nasledujú všetky prvky list2."""
result = []
for elm in list1:
result.append(elm)
for elm in list2:
result.append(elm)
return result
def concat(lists):
"""Spojí zoznamy obsiahnuté v lists do jedného zoznamu.
Sploštenie sa vykoná iba na jednej úrovni; vnorené zoznamy sa ďalej nesplošťujú."""
result = []
for lst in lists:
for eln in lst:
result.append(eln)
return result
def filter(function, seq):
"""Vráti nový zoznam s tými prvkami, pre ktoré volanie function(element) vráti True."""
result = []
for elm in seq:
if function(elm):
result.append(elm)
return result
def length(seq):
"""Vráti počet prvkov v zozname."""
cislo = 0
for elm in seq:
cislo += 1
return cislo
def map(function, seq):
"""Vráti nový zoznam, ktorého prvky vzniknú aplikovaním function(element) na každý prvok pôvodného zoznamu v pôvodnom poradí."""
cislo = []
for elm in seq:
cislo.append(function(elm)) # сначало выполняеться function(elm) которая множит на 2, а потом append который записывает
return cislo
def foldl(function, seq, acc):
"""Spracuje prvky zľava doprava. Akumulácia začína hodnotou acc a pri každom prvku sa použije volanie function(accumulator, element)."""
for elm in seq:
acc = function(acc, elm)
return acc
def foldr(function, seq, acc):
"""Spracuje prvky sprava doľava. Akumulácia začína hodnotou acc a pri každom prvku sa použije volanie function(accumulator, element)."""
for elm in seq[::-1]: # [::-1] [Где начать : где закончить : шаг, типо в какую сторону идти]
acc = function(elm, acc)
return acc
def reverse(seq):
"""Vráti nový zoznam s prvkami v opačnom poradí."""
reverse_seq = []
for elm in seq[::-1]:
reverse_seq.append(elm)
return reverse_seq