Я бы использовал пользовательскую функцию:
def try_int(x):
try:
return int(x)
except ValueError:
return x
Пример:
>>> [try_int(x) for x in ['sam', '1', 'dad', '21']]
['sam', 1, 'dad', 21]
Редактировать: Если вам нужно применить вышеуказанное ксписок списков, почему вы не преобразовали эти строки в int при построении вложенного списка?
В любом случае, если вам нужно, это просто вопрос выбора итерацийнад таким вложенным списком и примените метод, описанный выше.
Один из способов сделать это может быть:
>>> list_of_lists = [['aa', '2'], ['bb', '3']]
>>> [[try_int(x) for x in lst] for lst in list_of_lists]
[['aa', 2], ['bb', 3]]
Вы можете явно присвоить это list_of_lists
:
>>> list_of_lists = [[try_int(x) for x in lst] for lst in list_of_lists]