Hayrettin adlı üyeden alıntı: mesajı görüntüle
Bugün ikinci benzer konuyu yanıtlıyorum
replacements'a yeni bir anahtar kelime eklerken renklendirdiğim şekilde eklerseniz daha sağlıklı çalışır. değişecek kelime farklı bir kelime yada ek almışsa değişmeyecektir.


def get_dict(text):
    replacements = {r'\bday\b':'days',
                r'\bhour\b':'hours',
                r'\bminute\b':'minutes'}
    dic = {}
    digits = re.findall("\\d+", text)
    s = 0
    for i, j in replacements.items():
        if(s < len(digits)):
            text = re.sub(i,j,text)
            dic.update({j:int(digits[s])})
            s += 1
    return dic
örneğiniz için kullanım:

string1 = '293 day 8 hour'
string2 = '56 day 1 hour 24 minute'

dict1 = get_dict(string1)
dict2 = get_dict(string2)
print(dict1)
print(dict2)
çıktısı:
{'days': 293, 'hours': 8}
{'days': 56, 'hours': 1, 'minutes': 24}
Hocam yanıtınız için çok teşekkür ederim. Gayet güzel çalıştı elinize sağlık.
Değiştirilecek verileri sözlükte tutma fikrini ben de başta denedim de sanırım eksik kontroller yaptığım için days olunca bile dayss şeklinde yer değiştirme yapıyordu
Muhtemelen sizin yöntemi kullanırım da benim çözümüm hakkında ne düşünürsünüz
kwargs = {}
i = re.findall(r'(\d+ \w+)', text)
for k in i:
    k = k + 's' if k[-1] != 's' else k
    sayi = re.findall(r'\d+', k)[0]
    text = re.findall(r'\w+s', k)[0]
    kwargs[text] = int(sayi)