Курс 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. Добавление Progressbar в Python
  2. Сложение матриц в NumPy
  3. Оптимизация гиперпараметров в Python
  4. Получение имени функции с помощью inspect
  5. Модуль itertools: комбинации и перестановки
  6. Создание списка дат
  7. Списковое включение в Python
  8. Создание пар из последовательностей
  9. Установка максимального количества цифр
  10. Метод get для словарей
  11. Форматирование объектов с модулем pprint
  12. Обход элементов в Python
  13. Объявление переменных в Python
  14. Работа со строками в Python.
  15. Разбиение текста в Python
  16. Определение индекса элемента списка
  17. Enum в Python
  18. Удаление элемента по индексу в Python
  19. Фильтрация элементов с помощью islice
  20. Генераторы в Python
  21. Декораторы в Python
  22. Наследование в программировании
  23. Генераторы в Python
  24. Оператор Walrus: правильное использование
  25. Генерация UUID в Python
  26. Многострочные строки в Python
  27. Множественные конструкторы в Python
  28. Переменные класса и экземпляра
  29. Списковый компрехеншен.
  30. Разделение функций на этапы
  31. Манипуляция формой массива в Numpy
  32. Циклы в Python
  33. Использование функции enumerate()
  34. Обновление ключей в Python
  35. Возврат нескольких значений
  36. Проверка версии Python
  37. Профилирование данных с Pandas.
  38. Переворот списка в Python
  39. SciPy: широкий функционал для математических операций
  40. Декораторы в Python
  41. Множественное наследование в Python
  42. Создание namedtuple списком полей
  43. Переопределение метода
  44. Python: Фильтрация списков с помощью filter()
  45. Непрерывная проверка в Python
  46. Создание генераторов

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