Как сравнить с .index ячейку за ячейкой в python

#python

#python

Вопрос:

 Y = [1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1,]
X = [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ] 
Di = []
for number in Y:                        # as for each number in Y
    if number > 0:                      # and the number if more than 0
        if number in X:                 # compare to the numbers in X 
            if number not in Di:        # when in cases of number found not in X
                Di.append(number)       # Add to the Di
print("Di",Di)                          #print the letters Di and the value of the number 1 found
if Di == [1]:             # Condition   #if the value is equal to 1 print excluded
   print("excluded")      # Clause      #print excluded

else:
    print("not excluded")
  

Вывод

 Di --> excludeed #because of digit 5 counting 0
  

Приведенный выше код взят из программы на python, которая пытается сравнить 1 или 0, где это работает следующим образом: найдите первое значение, равное 0 в списке Y, и сравните его со значением в той же позиции в списке X, и если найдено положительное, исключите, если не найдено отрицательное, перейдите к следующему 0 в спискесписок Y и так далее, когда список завершен и не может исключить любую печать, не исключенную. надеюсь, это имеет смысл, но оно не выполняет свою функцию. если кто-нибудь сможет изменить его для меня с помощью .index, чтобы создать ожидаемую функцию, это сделало бы мою жизнь намного счастливее.
с уважением
Basem

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

1. Пожалуйста, поделитесь результатами, которые вы ищете, это помогло бы

Ответ №1:

 Y = [1, 1, 0, 1, 0]
X = [0, 0, 1, 0, 0]

def excluder(yVal, xVal):
    for count, ele in enumerate(yVal):
        print("Current Y list value in this loop cycle:"   str(ele))
        if yVal[count] > xVal[count]:
            print(str(yVal[count]), " is greater in the Y list")
        elif yVal[count] < xVal[count]:
            print(str(xVal[count]), " is greater in the X list")
        else:
            print(str(xVal[count]), " X and Y are equal")

excluder(Y, X)
  

Вывод ниже …. Я включил функцию enumerate, потому что это хороший способ получить количество в цикле без необходимости увеличивать переменную.

 Current Y list value in this loop cycle:1
1  is greater in the Y list
Current Y list value in this loop cycle:1
1  is greater in the Y list
Current Y list value in this loop cycle:0
1  is greater in the X list
Current Y list value in this loop cycle:1
1  is greater in the Y list
Current Y list value in this loop cycle:0
0  X and Y are equal
  

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

1. когда я попробовал это, он напечатал «1 больше в списке X», хотя список выглядит следующим образом Y = [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,] X = [0, 0, 0, 0,0, 1, 0, 0, 0, 0, 0 ] таким образом, он не должен был ничего исключать, потому что значение 6 в наборе Y равно 1. Другими словами, значение 5 в списке изменилось, код не изменился. спасибо за вашу помощь и содействие.

2. Отличная работа, приятель, я только что добавил or =, и я думаю, что это дает мне ожидаемые результаты, если yVal[count] >= xVal[count]:

3. Я отредактировал код, и теперь логике должно быть легче следовать. Предпочтительно использовать enumerate в python при увеличении, и я также включил пример этого.