在 Python 中检查列表包含关系

Beginner

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

简介

在 Python 中,经常需要检查一个列表是否包含在另一个列表中。这可能有点棘手,特别是当列表中元素的顺序无关紧要时。在这个挑战中,你将编写一个函数,用于检查一个列表的元素是否包含在另一个列表中,而不考虑顺序。

列表包含关系

编写一个函数 is_contained_in(a, b),它接受两个列表作为参数,如果列表 a 的所有元素都包含在列表 b 中(不考虑顺序),则返回 True。否则,该函数应返回 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

总结

在这个挑战中,你已经学会了如何检查一个列表是否包含在另一个列表中,而不考虑顺序。你编写了一个函数,它接受两个列表作为参数,如果列表 a 的所有元素都包含在列表 b 中(不考虑顺序),则返回 True