Как проверить и поменять значения в подмассивах?
t = [['234', 'True'], ['2353', 'False']]
y = [['234', 'False'], ['2353', 'False']]
Надо чтоб получилось в переменной y так:
y = [['234', 'True'], ['2353', 'False']]
т.е. значения True False из t применились к True False из y. Пробовал цикл в цикле, но меняет каждый раз все заново.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну буквально если то так:
t = [['234', 'True'], ['2353', 'False'], ['123', 'False']]
y = [['234', 'False'], ['2353', 'False'], ['321', 'True']]
d = dict(t)
for i in y:
k,v = i
if k in d and d[k] != v:
i[1] = d[k]
print(y)
Вывод:
[['234', 'True'], ['2353', 'False'], ['321', 'True']]
Я добавил по несовпадающему элементу в списки, чтобы видно было, что меняется именно список y, а не просто мы присвоили в y ссылку на t.
Словарь сделан, чтобы быстрее искать элементы.
Ну а дальше буквально - идём по второму списку, смотрим есть ли такой элемент в первом списке, отличается ли он, и если есть, то подменяем этот элемент в списке во втором словаре.