Как в списке преобразовать все строки, содержащие в себе числа в 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, 'Слива']]