Посчитать кол-в элементов в списке которые меньше текущего

Рейтинг: 0Ответов: 1Опубликовано: 21.01.2023

Функция должна принять список чисел и вывести новый список, в котором каждое число это количество чисел справа от ls[i] которые меньше чем ls[i].

Написал функцию, не могу понять как посчитать именно количество таких элементов??

def find_smaller_digits(ls: list) -> list:
    new_list = []
    for i in range(len(ls)-1):
        if ls[i] >= ls[i+1]:
            new_list.append(ls[i+1])

    return new_list


print(find_smaller_digits([1, 2, 3, 4, 5]))  # == [0, 0, 0, 0, 0]
print(find_smaller_digits([5, 4, 3, 2, 1]))  # == [4, 3, 2, 1, 0]
print(find_smaller_digits([1, 2, 0]))  # == [1, 1, 0]
print(find_smaller_digits([1, 1, -1, 0, 0]))  # == [3, 3, 0, 0, 0]
print(find_smaller_digits([5, 4, 7, 9, 2, 4, 4, 5, 6]))  # == [4, 1, 5, 5, 0, 0, 0, 0, 0]

Ответы

▲ 0

Решение:

def find_smaller_digits(ls: list) -> list:
    new_list = []
    for i in range(len(ls)):
        count = 0
        for j in range(i+1, len(ls)):
            if ls[i] > ls[j]:
                count += 1
        new_list.append(count)
    return new_list


print(find_smaller_digits([1, 2, 3, 4, 5]))  # == [0, 0, 0, 0, 0]
print(find_smaller_digits([5, 4, 3, 2, 1]))  # == [4, 3, 2, 1, 0]
print(find_smaller_digits([1, 2, 0]))  # == [1, 1, 0]
print(find_smaller_digits([1, 1, -1, 0, 0]))  # == [3, 3, 0, 0, 0]
print(find_smaller_digits([5, 4, 7, 9, 2, 4, 4, 5, 6]))  # == [4, 1, 5, 5, 0, 0, 0, 0, 0]