我想编写一个通用比较函数,该函数可以判断a和b相等,如果它们具有相同的元素和相同的数量,无论这些元素如何排序。此外,我希望通用解决方案可以适用于所有类型,并且在类型不匹配的情况下会打印一些消息。示例:
a = [1, 2]
b = [2, 1]
my_func(a, b)
>>> True
c = pd.DataFrame({'col1':[0, 1],
'col2':[2, 3])
d = pd.DataFrame({'col1':[1, 0],
'col2':[3, 2])
my_func(c, d)
>>> True
my_func(a, c)
>>> Different types to compare!
>>> False
当然,所有检查和排序都可能是硬编码的,但是我想知道是否有一种优雅的方法可以做到这一点。
答案 0 :(得分:0)
比较事物的“ pythonic”方式是
a == b
如果要比较列表而不考虑顺序,但要确保它们具有相同数量的元素,则可以使用collections.Counter
from collections import Counter
Counter(a) == Counter(b)