Должна ли быть ошибка, если я попытаюсь, если LIST == ‘значение’ в Python?

#python

Вопрос:

все еще изучаю python и понял, что мой код не должен работать, но ошибки не было.

Подозреваемый неправильный код, Пример1

 ListA = [1h]

if ListA == '1h':
 print(True)
else:
 print(False)
 

То, что я считаю правильным, основано на чтении и выполнении простого логического теста, Пример2:

 ListA = [1h]

if '1h' in ListA:
 print(True)
else:
 print(False)
 

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

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

1. Почему неправильный код ? Просто условие false-это список, равный строке : нет. независимо от значений

2. «Должна ли быть ошибка» если бы была ошибка, ваш код вызвал бы ее, если нет : есть ошибка

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

4. ваше утверждение ложно : ListA = [1h] дает ^ синтаксическую ошибку: недопустимый синтаксис. Я отметил ваш пост

Ответ №1:

Вы можете просмотреть список и посмотреть, есть ли в нем нужный элемент. Пример:

 ListA = ["1h", "2h"]

for ele in ListA:
    if ele == "1h":
        print(True)
    else:
        print(False)
 

Вы также можете использовать приведенный выше пример для более длинного списка. В вашем случае я бы использовал пример 2, который вы предоставили, так как он чище. Оба кода достигают одного и того же с одинаковой временной сложностью, которая равна O(N), где N-количество элементов в вашем массиве.