Курс Python → Сравнение неупорядоченных списков

Для эффективного сравнения двух неупорядоченных списков по отношению к памяти можно воспользоваться несколькими методами. Предположим, что у нас есть два списка, содержащих одинаковые элементы, но расположенные в разном порядке. Наша задача — убедиться, что списки идентичны, не учитывая порядок элементов.

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

Еще одним способом является использование функции sorted(), если объекты в списках могут быть упорядочены. Мы можем отсортировать оба списка и затем сравнить их отсортированные версии. Если отсортированные списки равны, то исходные списки также идентичны.


from collections import Counter

list1 = [1, 2, 3, 4, 5]
list2 = [3, 5, 1, 2, 4]

if Counter(list1) == Counter(list2):
    print("Списки идентичны")
else:
    print("Списки различаются")

sorted_list1 = sorted(list1)
sorted_list2 = sorted(list2)

if sorted_list1 == sorted_list2:
    print("Списки идентичны")
else:
    print("Списки различаются")

Таким образом, сравнение неупорядоченных списков по отношению к памяти может быть выполнено с использованием Counter или сортировки списков. Оба метода позволяют эффективно и точно определить, содержат ли списки одни и те же элементы, независимо от их порядка.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Dict Comprehension в Python
  2. Декораторы в Python
  3. Нарезка списков в Python
  4. Сглаживание списка
  5. Логирование с Logzero
  6. Оператор обр. импликации
  7. Инверсия списка и строки в Python
  8. Методы shutil для работы с файлами
  9. Сравнение объектов в Python
  10. Пересечение списков с использованием множеств
  11. Быстрый поиск кода
  12. Документирование функций в Python
  13. Оператор умножения для вектора
  14. Автоматизация с Python
  15. CLI-инструмент howdoi
  16. Получение срезов итераторов
  17. Рекурсия для обращения строки
  18. PUT запрос для обновления данных
  19. Функция all() в Python
  20. Каналы Senior: Python, Java, Frontend, SQL, C++
  21. Оператор Walrus в Python
  22. Ошибка NotImplemented в Python
  23. Создание объекта времени
  24. Синхронизация потоков с time.sleep()
  25. Переворот строки
  26. Цикл while в Python
  27. Блок else в Python
  28. Методы Python для работы с данными
  29. Деление в Python
  30. Создание функций высшего порядка
  31. Имена объектов в Python
  32. Обмен значений переменных в Python
  33. Работа со строками в Python.
  34. Применение функции к списку
  35. Оператор in и not in в Python
  36. Создание Telegram-бота на Python
  37. Форматирование строк в Python
  38. Обработка исключений
  39. Python enumerate() функции
  40. Применение функций в Python
  41. Бесконечная проверка в Python
  42. Метод remove() для удаления элемента из списка
  43. Оператор (*) в Python
  44. Python UserString — создание подклассов строк
  45. Операторы += в Python
  46. Методы и функции в Python
  47. Фильтрация списков с itertools

Marketello читают маркетологи из крутых компаний