Курс 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. Перегрузка операторов в Python
  3. Резервирование символов в Python
  4. Тестирование с responses
  5. Модуль inspect: получение информации о объектах
  6. Замена подстроки
  7. Функции с дополнением
  8. Mad Libs Generator
  9. JSON в Python: модуль, dump, dumps, load
  10. Оператор is в Python
  11. Установка и использование Virtualenv
  12. Множественное присваивание в Python
  13. Конвертация коллекций в Python
  14. Ускорение кода с помощью векторизации
  15. Списковое включение в Python
  16. Декораторы в Python
  17. Переименование файлов в Python
  18. Перебор элементов списка в Python
  19. Преобразование списка в словарь через генератор
  20. Функции в одну строку
  21. IPython и Jupyter Notebook: руководство
  22. Методы HTTP запросов в Flask
  23. Обход дочерних элементов BeautifulSoup
  24. Имена объектов в Python
  25. Метод rpow в Python
  26. Операторы присваивания в Python
  27. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  28. Многострочные комментарии в Python
  29. Отладчик pdb: начало работы
  30. Уникальные значения из списка
  31. Управление асинхронными задачами на Python.
  32. Список импортированных модулей в Python
  33. Применение функции к списку
  34. Работа с комплексными числами
  35. Счетчик в Python: most_common()
  36. Работа с YAML в Python
  37. ChainMap.new_child() — добавление нового словаря
  38. Создание объекта времени
  39. Равенство и идентичность в Python
  40. Руководство по использованию Colorama
  41. Объединение списков в Python
  42. Метод enumerate() в Python
  43. Измерение времени выполнения кода

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