У меня есть концептуальный вопрос о Python.Это код
list1=['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
sub1 = "teacher"
sub2 = "sales"
ans=[]
for item in list1:
if (sub1 and sub2) in item:
ans.append(item)
Здесь я ожидаю, что список будет пустым, поскольку ни один из элементов не удовлетворяет условию if sub1 and sub2 in item:
Но когда я распечатываю список, я получаю вывод # 1 как это
>>> ans
['salesperson', 'sales manager'] # I expected an empty list here
Кроме того, когда я использую or
вместо and
, как указано ниже
for item in list1:
if (sub1 or sub2) in item:
ans.append(item)
вывод # 2 я получаю
>>> ans
['schoolteacher', 'mathematics teacher'] # I expected a list of words containing sub1 or sub2 as their substrings
Я видел похожее решение здесь , но оно точно не решает мою проблему.Оба раза я получаю результат, которого не ожидаю при использовании and
и or
.Почему это происходит во время обеих этих операций?