Я пытаюсь найти уникальные комбинации 4 из 32 вариантов (496 возможностей), которые затем объединяются в матрицу (так что матрица может быть до 496 на 496 или 25 000 ячеек). Однако (с использованием чисел для представления вариантов выбора) это означает, что у меня есть несколько дубликатов (1,2), сопоставленных с (3,4), то же самое, что (1,3), сопоставленные с (2,4). Что мне нужно сделать, так это найти дубликаты (те же четыре варианта, независимо от того, в каком порядке) и пометить их как таковые. Я поигрался с этим и прочитал все, что смог найти. В этом вопросе (https://www.csestack.org/compare-two-lists-python-return-non-match-elements/) я начал. Однако мои списки разные - они выглядят как элементы в list_e и list_f (см. Код ниже), которые не отображаются как дубликаты, даже если игроки 2,4,6 и 8 отображаются в каждом из них. В идеале я хотел бы найти способ сравнить list_e и list_f и зарегистрировать их как дубликаты. Если мне нужно переформатировать содержимое list_e и list_f, чтобы они имели ту же структуру, что и list_a и list_b, это, по крайней мере, выполнит свою работу. Однако, поскольку у меня много сравнений, я хотел бы сделать это наиболее эффективным способом.
Заранее спасибо за любую помощь.
if len(list_a) != len(list_b):
return False
if set(list_a) == set(list_b):
return True
else:
return False
list_a = [2, 4, 6, 8]
list_b = [2, 8, 6, 4]
list_c = [(2,4,6,8)]
list_d = [(4,6,2,8)]
list_e = [((2,4),(6,8))]
list_f = [((2,6),(4,8))]
if is_identical(list_a, list_b):
print("Two lists are identical.")
else:
print("Two lists are different.")
if is_identical(list_c, list_d):
print("Two lists are identical.")
else:
print("Two lists are different.")
if is_identical(list_e, list_f):
print("Two lists are identical.")
else:
print("Two lists are different.")