Похоже, вы интересуетесь чем-то вроде набора наборов, а не просто кортежей. Если ваши объекты можно сортировать, вы можете использовать этот обычный хак:
included_set = set()
included_list = list()
input_list = np.random.randint(5242, size=(500,2))
for (a, b) in input_list:
sorted_version = tuple(sorted((a, b)))
if sorted_version not in included_set:
included_set.add((a, b))
included_list.append((a, b))
Если ваши объекты не сортируются, но могут быть сопоставимы, вы можете настроить вышеперечисленное для работы в любом случае:
for (a, b) in input_list:
if (a, b) not in included_set and (b, a) not in included_set:
included_set.add((a, b))
included_list.append((a, b))
Обратите внимание, что вам нужно хранить отдельные included_list
и included_set
, только если вы хотите сохранить порядок в списке ввода. Если нет, и если вас не волнует порядок кортежей (a, b)
, просто наберите:
uniques = {tuple(sorted(tup)) for tup in input_list}