Вы можете проверить, содержит ли строка цифры .isdigit()
. Таким образом, вы можете вызывать int
только в том случае, если элемент в этом индексе содержит цифры:
def convert(str_list):
n = 0
while n < len(str_list):
if str_list[n].isdigit():
str_list[n] = int(str_list[n])
n += 1
return(str_list)
Затем вы можете перебрать все списки в вашем основном списке и конвертировать их по отдельности:
lst = [['x', 'x', '1', 'x'], ['4', 'x', 'x', 'x'], ['x', 'x', 'x', '2'], ['x', '3', 'x', 'x']]
for l in lst:
convert(l)
print(lst)
Выход
[['x', 'x', 1, 'x'], [4, 'x', 'x', 'x'], ['x', 'x', 'x', 2], ['x', 3, 'x', 'x']]