Изменение определённого объекта в списке в Python

Хочу узнать,как менять определённый тип объектов в списке,если список состоит из неопределённого количества разных объектов разных типов данных: Например,нужно,чтобы это:

>    Input:
>    Олег заработал сегодня 3000 рублЯ
>    Маша заработала сегодня 3123 рублЯ
>    Витя заработал сегодня 3441 рублЬ

Превратилось в это (здесь сумма увеличится,допустим,на 20 процентов):

>    Output:
>    Олег заработал сегодня 3600 рублЕЙ
>    Маша заработала сегодня 3747 рублЕЙ и 60 копеек
>    Витя заработал сегодня 3,129 рублЕЙ и 20 копеек

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

Автор решения: Zhihar

можно так:

value = 3712
words = ['рубль', 'рубля', 'рублей']

word = words[2 if 10 <= value % 100 <= 20 or value % 10 > 4 else 0 if value % 10 == 1 else 1]

print(f'{value} {word}')

если нужно обработать запрос вида [имя операция] [действие] [дата] [значение] [валюта], то можно так:

def getForm(value, forms):
    return forms[2 if 10 <= value % 100 <= 20 or value % 10 > 4 else 0 if value % 10 == 1 else 1]

text = 'Олег заработал сегодня 3000 рублей'
coeff = 3.141592

elements = text.split()

value = float(elements[3]) * coeff    

rubles = int(value)
kopecks = int(100 * (value - rubles))

text = ' '.join([elements[0], elements[1], str(rubles), getForm(rubles, ['рубль', 'рубля', 'рублей'])] + ([] if kopecks == 0 else [str(kopecks), getForm(kopecks, ['копейка', 'копейки', 'копеек'])]))

print(text)
→ Ссылка