Курс 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. Работа с множествами в Python
  2. Измерение времени выполнения с помощью time
  3. Операторы += в Python
  4. Расчет времени выполнения
  5. Получение комбинаций в Python
  6. Модуль sys: основы
  7. Создание словаря с значением по умолчанию
  8. Функция findall() для поиска вхождений строки
  9. Работа с JSON в Python
  10. Глубокое копирование объектов
  11. Метод get для словаря
  12. Объединение Python и Shell
  13. Работа с файлами в Python
  14. Асинхронное программирование с asyncio
  15. PUT запрос для обновления данных
  16. Открытие и редактирование скриптов Python
  17. Сортировка списка по индексам
  18. Сравнение объектов в Python
  19. Combobox в Tkinter
  20. Оптимизация памяти с помощью __slots__
  21. Оператор распаковки в Python
  22. Итерации в Python
  23. Хэш-функции в Python
  24. Дефолтные параметры в Python
  25. Функции range() в Python
  26. Переопределение метода xor в Python
  27. Работа с часовыми поясами в Python
  28. Обрезка изображения с Pillow
  29. Удаление символа из строки
  30. Логирование с Logzero
  31. Генераторные функции в Python
  32. Построение графиков в терминале с bashplotlib
  33. Запуск внешнего кода в Jupyter
  34. Логирование в Python
  35. Локальные переменные.
  36. Подсчет элементов с помощью Counter из collections
  37. Введение в PyTorch
  38. Транспонирование 2D-массива с помощью zip
  39. Доступ к локальным переменным
  40. Объединение словарей в Python
  41. Красивый вывод списка
  42. Форматирование данных с помощью pprint
  43. Получение значений из словарей
  44. Оболочка Python
  45. Работа с модулем os в Python
  46. Переопределение метода len

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