30秒学会 Python 片段 · 2022年11月6日

30秒学会 Python 片段 – Check lists have same contents

Checks if two lists contain the same elements regardless of order.

  • Use set() on the combination of both lists to find the unique values.
  • Iterate over them with a for loop comparing the count() of each unique value in each list.
  • Return False if the counts do not match for any element, True otherwise.

代码实现

def have_same_contents(a, b):
  for v in set(a + b):
    if a.count(v) != b.count(v):
      return False
  return True

使用样例

have_same_contents([1, 2, 4], [2, 4, 1]) # True

翻译自:https://www.30secondsofcode.org/python/s/have-same-contents