Какой самый питонный способ сравнить две переменные? - PullRequest
0 голосов
/ 11 октября 2018

Я хотел бы написать универсальную функцию сравнения, которая может сказать, что 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 голосов
/ 11 октября 2018

«Питонический» способ сравнения вещей:

a == b

Если вы хотите сравнивать списки независимо от порядка, но при условии, что они имеют одинаковое количество элементов, можно использовать collections.Counter

from collections import Counter
Counter(a) == Counter(b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...