Найдите, присутствует ли значение в списке

#python #list

#питон #Список

Вопрос:

Я пытаюсь найти , присутствует ли 2 a , но когда я запускаю код, он говорит, что его здесь нет

 a = [1,2,3] b = [2]  if b in a:  print('its here') else:  print('its not here')  

Из того, что я читал в Интернете, я вижу in , что оператор используется для проверки наличия значения в массиве. хотя, если я использую: if 2 in a: тогда он отображается как здесь, но я бы хотел, чтобы b сделал это.

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

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

2. a не содержит b , так b как является самим списком. В настоящее время ваш код проверяет , содержится ли список [2] внутри [1, 2, 3] , что так и есть False . Если вы установили b = 2 , ваша программа должна вывести «its here».

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

Ответ №1:

Вы a ищете список, содержащий 2, а не само значение 2. ( b является ли список не значением)

Вы могли бы заставить его работать, используя первый элемент b :

 if b[0] in a:  print('its here') else:  print('its not here')  

Или вы можете проверить, все ли значения списка b присутствуют в списке a

 if all(value in a for value in b):  print('its here') else:  print('its not here')  

Ответ №2:

Вы можете использовать цикл for, чтобы проверить, находится ли b в a или наоборот.

Вот я привел такой пример:

 a = [1, 2, 3] b = [2]  for x in a, b:  if x == b:  print("b is in a")  else:  print("b is not in a")  

Теперь поверх печати вы можете поместить нужный вам текст, например «B здесь».

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

1. Этот ответ даже синтаксически неверен.

2. Ты хотел написать in zip(a, b) ? В любом случае, all(x in a for x in b) было бы лучше

3. … и это не касается вопроса ОП.