Обратный генератор

Списки и коллекции / Итераторы и генераторы

def reverse(data):
    # range counts down: from the last index to 0
    for current in range(len(data) - 1, -1, -1):
        yield data[current]


chars = list(reverse("string"))
# chars is ['g', 'n', 'i', 'r', 't', 's']
numbers = list(reverse([1, 2, 3]))
# numbers is [3, 2, 1]

print(f"{chars = }")
print(f"{numbers = }")