Найти - Пользователи
Полная версия: Поменять значение во вложенном списке
Начало » Python для новичков » Поменять значение во вложенном списке
1
vesnushka.o
Всем привет!
Не могу сообразить, как сделать. Задача легкая, но то ли пересидела, то ли мозгов не хватает, не могу решить. Дан список:
 [[['A', 0, 0, 3], ['A', 10, 0, 3], ['A', 19, 0, 3], ['A', 23, 0, 2], ['A', 25, 0, 1], ['A', 27, 5, 1]], [['C', 0, 0, 3], ['C', 13, 0, 3], ['C', 27, 5, 3]], [['C', 0, 0, 3], ['C', 11, 5, 3], ['C', 20, 5, 3], ['C', 26, 5, 2]], [['C', 0, 0, 3], ['C', 8, 5, 3], ['C', 21, 5, 3], ['C', 27, 5, 2]], [['A', 0, 0, 3], ['A', 9, 5, 3], ['A', 22, 5, 3], ['A', 28, 5, 2]], [['C', 0, 0, 3], ['C', 11, 5, 3], ['C', 19, 5, 3], ['C', 29, 5, 2]], [['A', 0, 0, 3], ['A', 11, 5, 3], ['A', 23, 5, 3], ['A', 26, 5, 1]], [['C', 0, 0, 3], ['C', 13, 5, 3], ['C', 25, 5, 3], ['C', 28, 5, 2]], [['A', 0, 0, 3], ['A', 13, 5, 3], ['A', 22, 5, 3], ['A', 31, 0, 2]], [['A', 0, 0, 3], ['A', 14, 0, 3], ['A', 24, 0, 3], ['A', 34, 0, 1]]]
Нужно сделать так, чтобы в каждом вложенном списке, последний элемент списка был равен последнему элементу следующего списка, а последний элемент последнего списка стал равен 0.
Звучит не очень, но вот что мне нужно получить из вышеупомянутого списка:
 [[['A', 0, 0, 3], ['A', 10, 0, 3], ['A', 19, 0, 2], ['A', 23, 0, 1], ['A', 25, 0, 1], ['A', 27, 5, 0]], [['C', 0, 0, 3], ['C', 13, 0, 3], ['C', 27, 5, 0]], [['C', 0, 0, 3], ['C', 11, 5, 3], ['C', 20, 5, 2], ['C', 26, 5, 0]], [['C', 0, 0, 3], ['C', 8, 5, 3], ['C', 21, 5, 2], ['C', 27, 5, 0]], [['A', 0, 0, 3], ['A', 9, 5, 3], ['A', 22, 5, 2], ['A', 28, 5, 0]], [['C', 0, 0, 3], ['C', 11, 5, 3], ['C', 19, 5, 2], ['C', 29, 5, 0]], [['A', 0, 0, 3], ['A', 11, 5, 3], ['A', 23, 5, 1], ['A', 26, 5, 0]], [['C', 0, 0, 3], ['C', 13, 5, 3], ['C', 25, 5, 2], ['C', 28, 5, 0]], [['A', 0, 0, 3], ['A', 13, 5, 3], ['A', 22, 5, 2], ['A', 31, 0, 0]], [['A', 0, 0, 3], ['A', 14, 0, 3], ['A', 24, 0, 1], ['A', 34, 0, 0]]]

Буду очень признательна за помощь!
Egorro13
Попытался набросать примерное решение, если правильно задачу понял.
 lst = [[['A', 0, 0, 3], ['A', 10, 0, 3], ['A', 19, 0, 3], ['A', 23, 0, 2],
        ['A', 25, 0, 1], ['A', 27, 5, 1]],
       [['C', 0, 0, 3], ['C', 13, 0, 3], ['C', 27, 5, 3]],
       [['C', 0, 0, 3], ['C', 11, 5, 3], ['C', 20, 5, 3], ['C', 26, 5, 2]],
       [['C', 0, 0, 3], ['C', 8, 5, 3], ['C', 21, 5, 3], ['C', 27, 5, 2]],
       [['A', 0, 0, 3], ['A', 9, 5, 3], ['A', 22, 5, 3], ['A', 28, 5, 2]],
       [['C', 0, 0, 3], ['C', 11, 5, 3], ['C', 19, 5, 3], ['C', 29, 5, 2]],
       [['A', 0, 0, 3], ['A', 11, 5, 3], ['A', 23, 5, 3], ['A', 26, 5, 1]],
       [['C', 0, 0, 3], ['C', 13, 5, 3], ['C', 25, 5, 3], ['C', 28, 5, 2]],
       [['A', 0, 0, 3], ['A', 13, 5, 3], ['A', 22, 5, 3], ['A', 31, 0, 2]],
       [['A', 0, 0, 3], ['A', 14, 0, 3], ['A', 24, 0, 3], ['A', 34, 0, 1]]]
for sublist in lst:
    prev = sublist[0]
    for nxt in sublist[1:]:
        prev[-1] = nxt[-1]
        prev = nxt
    nxt[-1] = 0
for l in lst:
    print(l)
py.user.next
vesnushka.o
Не могу сообразить, как сделать. Задача легкая, но то ли пересидела, то ли мозгов не хватает, не могу решить.
Не, это первый признак того, что задача неясно поставлена. Проясни задачу.

1)
В задаче всё должно быть очень точно, никаких двусмысленностей и догадок быть не должно.
2)
Затем надо подобрать небольшие входные данные и вручную составить для них выходные данные, которые должны быть получены в результате работы ещё не написанной программы.
3)
Нужно описать точно принцип преобразования данных из входных в выходные.
4)
И только после этого надо писать уже программу.
vesnushka.o
Egorro13
Попытался набросать примерное решение, если правильно задачу понял.
спасибо! Вы все верно поняли.
Очень благодарна
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB