«Переопределенная переменная, определенная выше, без использования» в python? - PullRequest
0 голосов
/ 18 апреля 2019

Это может быть идиотским, но сводит меня с ума: Почему этот код не работает? Дает мне предупреждение о «Переопределенной переменной j, определенной выше, без использования» и не переписывает элементы. Спасибо.

a=[[1,2],[3,4,0],[5,6,0,0]]

for i in a:
    for j in i:
        j=0

print(a)

1 Ответ

0 голосов
/ 18 апреля 2019

В предупреждающем сообщении делается попытка сказать вам только то, что в нем сказано: вы технически «переделываете» переменную.(Хотя его лучше воспринимать как имя , которому вы переопределяете.)

В частности, цикл for - это, по сути, неявное переназначение имени jк следующему int в i.Ваша IDE обнаруживает, что вы ничего не делаете с этим временным присваиванием, прежде чем выполнять одеяло- j=0 внутри каждого вложенного цикла for.

Возможно, вы заметили, что все это на самом деле не меняет a,Это потому, что, как указано в комментариях, вы не мутируете фактических элементов (или подэлементов) a.

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