Как преобразовать числа строк в целые числа в списке?

У меня есть список:

['batting average', '306', 'ERA', '1710']

Как я могу преобразовать назначенные числа, не касаясь строк?

Спасибо за помощь.

Ответ 1

changed_list = [int(f) if f.isdigit() else f for f in original_list]

Ответ 2

Данные выглядят так, как вы знаете, в каких позициях должны быть номера. В этом случае, вероятно, лучше явно преобразовать данные в эти позиции, а не просто преобразовывать все, что выглядит как число:

ls = ['batting average', '306', 'ERA', '1710']
ls[1] = int(ls[1])
ls[3] = int(ls[3])

Ответ 3

Попробуйте следующее:

def convert( someList ):
    for item in someList:
        try:
            yield int(item)
        except ValueError:
            yield item

newList= list( convert( oldList ) )

Ответ 4

a= ['batting average', '306', 'ERA', '1710.5']

[f if sum([c.isalpha() for c in f]) else float(f) for f in a ]

если ваш список содержит float, string и int (как указано в @d.putto в комментарии)