нужно удалить все числа оканчивающиеся на 5 (например, 5, 15, 25 и тд)

def five(num):
    num_list = list(range(1, num+1))
    num_odds = []
    for i in num_list:
        if i % 2 != 0:
            num_odds.append(i)
        for j in num_odds:
            if j*5 == i:
                num_list.remove(i)
    return num_list

print(five(17))

Метод заключается в том, что число, оканчивающееся на 5 это нечетное * 5. Мне нужно сделать, чтобы числа удалялись в диапазоне от num1 до num2. Код, где нет диапазона работает нормально, но при добавлении ничего не происходит:

def five(num1,num2):
    num_list = list(range(num1, num2+1))
    num_odds = []
    for i in num_list:
        if i % 2 != 0:
            num_odds.append(i)
        for j in num_odds:
            if j*5 == i:
                num_list.remove(i)
    return num_list

print(five(4,17))

Ответы (2 шт):

Автор решения: Александр
Может так?

def function(array):
    new_array = [integer for integer in array if not str(integer).endswith('5')]
    return new_array

test_array = [25, 46, 5, 35, 97, 144, 255]


print(function(test_array))
→ Ссылка
Автор решения: alezhu
# simple
def five(start, end):
    result = filter(lambda x: x % 10 == 5, range(start, end + 1))
    return list(result)


# faster
def five2(start, end):
    result = list()
    value = start
    while value <= end:
        if value % 10 == 5:
            result.append(value)
            value += 10
        else:
            value += 1

    return result
→ Ссылка