在写单元测试的时候, 测db里面获取到的值, 发现
res = load_data_from_db(data = [{'a': 2}, {'a': 1}])
assert [{'a': 1}, {'a': 2}]==res
居然报错了!!!
在度娘里面找不到, 关于非排序的列表判断相等的相关的知识
谷歌一下, Raymond大神给出了正解
如果对于可哈希的值使用 Counter() ,O(n):
def compare(s, t):
return Counter(s) == Counter(t)
如果你的结果是可排序的 sorted() ,O(n log n):
def compare(s, t):
return sorted(s) == sorted(t)
对于不可哈希,也不可以排序的值, 还是可以使用相等去解决,O(n * n):
def compare(s, t):
t = list(t) # make a mutable copy
try:
for elem in s:
t.remove(elem)
except ValueError:
return False
return not t
原文地址: