リスト内の数字だけをint型にしたい


`s = ['1', '+', '5', '*', '5']` というstrで構成されたリストがある時  
`s = [1, '+', 5, '*', 5]` というふうに簡単に変換できる方法はありますでしょうか？  
一応考えてみたプログラムが以下のような感じなのですが、良い書き方ではないような気がしたので質問させていただきました。

[code]

    s = '1 + 5 * 5'.split()
    for i in s:
        try:
            if int(i) % 1 ==0:
                s[s.index(i)] = int(i)
        except ValueError:
            pass
    
[/code]



[code]

    s = [int(c) if c.isdecimal() else c for c in '1 + 5 * 5'.split()]
    
[/code]

と書くでしょうか。



[code]

    s = [int(c) if c.isdecimal() else c for c in '1 + 5 * 5'.split()]
    
[/code]

と書くでしょうか。

