comradeRecky
@comradeRecky
и швец, и жнец, и на дуде игрец

Как заменить элемент в кортеже, вложенном в список?

Имеется список, внутри кортежи
result = [(datetime.date(2021, 4, 14), datetime.time(7, 40, 10), 18563, 10640), (datetime.date(2021, 4, 14), datetime.time(8, 30, 45), 18563, 10653), (datetime.date(2021, 4, 14), datetime.time(8, 31, 19), 18563, 10640), (datetime.date(2021, 4, 14), datetime.time(12, 6, 28), 18563, 10653), (datetime.date(2021, 4, 14), datetime.time(12, 37, 41), 18563, 10640), (datetime.date(2021, 4, 14), datetime.time(17, 8, 42), 18563, 10653)]

Первым делом в цикле преобразовываю кортежи в списки, пробую заменить необходимый элемент и преобразовать назад в кортеж, но на выходе ничего не меняется и элементы остаются прежними. Что я делаю не так?
for i in result:
    i = list(i)
    if i[3] == 10640:
        i[3] = "Вход"
    i = tuple(i)
  • Вопрос задан
  • 728 просмотров
Решения вопроса 1
0xD34F
@0xD34F
for i, n in enumerate(result):
  if n[3] == 10640:
    n = list(n)
    n[3] = 'Вход'
    result[i] = tuple(n)

или

result = [ (*n[:3], 'Вход') if n[3] == 10640 else n for n in result ]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы