добро пожаловать, Никат!
Это потому, что X - это список , содержащий одну строку. Но x не является самой строкой.
Итак:
в первом случае я принимает значение каждого элемента в этом списке (поскольку длина этого списка = 1 , l oop будет быстро сделано). Поэтому, когда я = «Decomplete asd», что является строкой , условия истинны: «De» и «comp» находятся в этой строке.
in во втором случае условия применяются непосредственно к x. И x - это список, а не строка. Это означает, что вы ищете строки «De» и «comp» в списке, который их не содержит, как элементы.
Это сработало бы, если бы у вас было x = ["De", "comp", "hello"]
например.
Или если бы у вас было x = "Decomplete asd"
(т.е. строка без [
и ]
).
Надеюсь, это помогло!