У меня есть список списков с 3 целыми числами, как это:
myList = [[1,2,3],[2,4,3],[2,1,3],[3,2,4],[5,4,3],[4,3,2],[5,4,3], [3,4,2]]
Я хочу удалить список, если он имеет симметричный в myList. Например [1,2,3]
и [3,2,1]
симметричны, и [1,2,3]
или [3,2,1]
могут оставаться в новом списке, но не в обоих.
Я попытался отсортировать, чтобы избавиться от симметричных c списков
myList = [[1,2,3],[2,4,3],[2,1,3],[3,2,4],[5,4,3],[4,3,2],[5,4,3], [3,4,2]]
result = set()
for elem in myList:
result.add(tuple(sorted(elem)))
result = list(result)
print(result)
Код выглядел следующим образом:
[(3, 4, 5), (2, 3, 4), (1, 2, 3)]
Хотя я избавился от симметричных списков, я хочу сохранить положение каждого числа в середине без изменений и просто отсортировать каждое список в порядке возрастания / убывания только с учетом их первого и третьего целых чисел.
Например [2, 4 , 3], [3, 2 , 4], [3, 4 , 2] должны быть отсортированы как -> [2, 4 , 3], [3, 2 , 4], [2, 4 , 3] и тогда я смогу избавиться от идентичных символов -> [2 , 4,3], [3,2,4]
Не могли бы вы предложить мне способ сортировки целых чисел в списках в myList, но пропуская среднее значение каждого списка, как показано ниже, чтобы я мог исключить симметричные списки?