Как изменить повторные значения в списке в python?

#python #list

Вопрос:

У меня есть списки x и y

 x = [0, 0, 1, 0]
y = [1, 0, 1, 0]
 

какую функцию я должен использовать в python, чтобы, когда » x » и » y » имеют значение 1. Затем «x» и «y» изменятся так, что это значение станет 0 как в x, так и в y » (1 станет 0 в обоих списках), как показано ниже. Другими словами, я хочу изменить списки выше на списки ниже.

 a = [0, 0, 0, 0]
b = [1, 0, 0, 0]
 

Тогда я смогу использовать новые списки «а» и «в».
Я зашел так далеко:

 #original author @Brett Lapierre
x = [0, 0, 1, 0]
y = [1, 0, 1, 0]
def excluder(yVal, xVal):
        for count, ele in enumerate(yVal):
            if yVal[count] == xVal[count]:
                print("there is a match") # how would I change just the 1 values in both lists to 0?.
excluder(x, y)
 

Большое вам спасибо.:)

Комментарии:

1. Меня не волнуют нули, они могут оставаться такими, какие они есть, только когда один повторяется в обоих списках в одном и том же месте. заранее спасибо

2. Вы спрашиваете, как изменить значения списка?

3. в приведенном выше примере я определил, где с помощью перечисления. Я должен изменить тот, который равен 1 в обоих списках. спасибо Даниял

4. if yVal[count] == xVal[count] == 1: yVal[count] = xVal[count] = 0

5. вы можете использовать xor в numpy np.logical_xor(x, y)

Ответ №1:

Это то, что вы ищете? Это работает на меня.

 x = [0, 0, 1, 0]
y = [1, 0, 1, 0]

def change():
    global x, y
    
    for i, b in enumerate(x):
        if x[i] == y[i]:
            x[i] = 0
            y[i] = 0

change()
 

Это должно сработать.

Выполнение этого приведет к x становлению [0, 0, 0, 0] и становлению y [1, 0, 0, 0] .

Комментарии:

1. @basem добро пожаловать! Пожалуйста, поднимите голос, если это полезно.

2. @basem также, если это сработало, вы можете принять ответ.