Mit der Funktion wird eine bestimmte Anzahl Elemente vom Ende einer vorgegeben Sequenz zurückgegeben.
import collections
import types
from typing import Sequence
def tail_of_sequence(sequence: Sequence, number: int) -> Sequence:
"""
Gibt n Elemente vom Ende einer vorgegebenen Sequenz zurück.
:param sequence: Sequenz, deren Elemente gefiltert werden
:param number: Anzahl der Elemente, die zurückgegeben werden soll
:return: Sequenz, die die zurückgegebenen Elemente enthält
"""
if number <= 0: return []
if not isinstance(sequence, types.GeneratorType) and number > len(sequence): return sequence
deque_sequence = collections.deque(sequence) deque_sequence.rotate(number)
if not deque_sequence: return []
result = []
for i in range(0, number): result.append(deque_sequence[I])
return result
# Beispiele für den Aufruf
print(tail_of_sequence((1, 2, 3, 4, 5, 6, 7), 3))
print(tail_of_sequence(('a', 'b', 'c', 'd', 'e', 'f', 'g'), 4))
Ausgabe:
[5, 6, 7]
['d', 'e', 'f', 'g']