Проверка содержания списка в Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Содержание списка

Напишите функцию is_contained_in(a, b), которая принимает два списка в качестве аргументов и возвращает True, если все элементы списка a содержатся в списке b, независимо от порядка. В противном случае функция должна возвращать False.

Для решения этой проблемы вы можете использовать следующий подход:

  1. Перебирайте каждое уникальное значение в списке a.
  2. Для каждого значения проверяйте, появляется ли оно в списке a больше раз, чем в списке b.
  3. Если какое-либо значение появляется в списке a больше раз, чем в списке b, возвращаем False.
  4. Если все значения в списке a появляются в списке b по крайней мере столько же раз, сколько они появляются в списке a, возвращаем True.
def is_contained_in(a, b):
  for v in set(a):
    if a.count(v) > b.count(v):
      return False
  return True
is_contained_in([1, 4], [2, 4, 1]) ## True

Резюме

В этом испытании вы узнали, как проверить, содержится ли один список в другом списке, независимо от порядка. Вы написали функцию, которая принимает два списка в качестве аргументов и возвращает True, если все элементы списка a содержатся в списке b, независимо от порядка.