Как в списке преобразовать все строки, содержащие в себе числа в int (без циклов)?

Допустим, мы имеем такой список, в котором числа могут стоять в любом порядке:

a = [["Саша", "15", "Яблоко"], ["7", "Игорь"], ["Елена", "71", "984", "Слива"]]

Как не используя циклы преобразовать все числа в тип данных int? Может есть какая - нибудь библиотека для этого?


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

Автор решения: Namerek
a = [["Саша", "15", "Яблоко"], ["7", "Игорь"], ["Елена", "71", "984", "Слива"]]


def try_to_int(val):
    if isinstance(val, list):
        return [*map(try_to_int, val)]
    try:
        return int(val)
    except ValueError:
        pass
    return val


print(try_to_int(a))
# [['Саша', 15, 'Яблоко'], [7, 'Игорь'], ['Елена', 71, 984, 'Слива']]
→ Ссылка