Почему сравнение не работает в условии if в python?

#python #arrays #for-loop #if-statement #arraylist

#python #массивы #for-цикл #if-оператор #arraylist

Вопрос:

Q1. Учитывая массив целых чисел, верните True, если 6 отображается как первый или последний элемент в массиве. Массив будет иметь длину 1 или более.

 #first_last6([1, 2, 6]) → True
#first_last6([6, 1, 2, 3]) → True
#first_last6([13, 6, 1, 2, 3]) → False

#Code
my_list = []
in_list = list(map(int, input("Enter a multiple value: ").split()))
for num in in_list:
    my_list.append(num)
if (my_list[0:] == 6 or my_list[:-1] == 6):
    print("True")
else:
    print("False")
 

код работает хорошо, но если условие не работает, в то время как else работает хорошо, например, если мы обращаемся к индексации «in_list [2]» в операторе else, это даст правильный ответ. тогда почему условие if не работает?

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

1. Вам не нужно : в ваших индексах. Распечатайте то, что my_list[0:] и my_list[:-1] дает вам для отладки

Ответ №1:

Избавьтесь от : .

Это slice обозначение, и результатом среза является список, а не элемент этого списка.

 my_list = [6, 1, 2, 3]
print(my_list[0:], my_list[:-1]) # slice list
print(my_list[0],  my_list[-1])  # access list item by index
 

Вывод:

 [6, 1, 2, 3] [6, 1, 2]
6 3