比较两个变量的最pythonic方法是什么?

时间:2018-10-11 20:10:09

标签: python pandas

我想编写一个通用比较函数,该函数可以判断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

当然,所有检查和排序都可能是硬编码的,但是我想知道是否有一种优雅的方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

比较事物的“ pythonic”方式是

a == b

如果要比较列表而不考虑顺序,但要确保它们具有相同数量的元素,则可以使用collections.Counter

from collections import Counter
Counter(a) == Counter(b)