Измените третью строку каждого подмножества на int - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу сделать каждую третью строку списка номером например:

stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']

до

stat = [[1 , '2', 3], [34, '32', 4], [45, '21', 56]

Я пытался

for i in stat:
    i[2]= int(i[2])

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 04 ноября 2018

Зачастую проще создать новый список, чем изменить существующий.

Я бы использовал итеративную распаковку, чтобы распаковать каждый элемент вашего подсписка в три имени, а затем использовал бы 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 заставляет меня думать о целых числах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...