30秒学会 Python 片段 · 2020年5月9日

30秒学会 Python 片段 – have_same_contents.md


title: have_same_contents
tags: list,intermediate

Returns True if two lists contain the same elements regardless of order, False otherwise.

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