Зачастую проще создать новый список, чем изменить существующий.
Я бы использовал итеративную распаковку, чтобы распаковать каждый элемент вашего подсписка в три имени, а затем использовал бы int
для третьего.
>>> stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']]
>>> stat = [[a, b, int(c)] for a, b, c in stat]
>>> stat
>>> [[1, '2', 3], [34, '32', 4], [45, '21', 56]]
Это понимание списка создает новый список и переназначает имя stat
.
Однако ваш исходный код должен работать нормально:
>>> stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']]
>>>
>>> for i in stat:
...: i[2] = int(i[2])
...:
>>> stat
>>> [[1, '2', 3], [34, '32', 4], [45, '21', 56]]
Это изменяет stat
на месте. Я предлагаю использовать лучшее имя, чем i
, например sublist
. i
заставляет меня думать о целых числах.