Курс 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. Пропуск строк в файле с itertools
  2. Оператор распаковки в Python
  3. Генераторы и сеты в Python
  4. Упрощение условных выражений с тернарным оператором
  5. Создание словарей с defaultdict
  6. Декораторы в Python
  7. Получение текущего времени в Python
  8. Изучение объектов с помощью dir()
  9. Перехват исключений в Python
  10. Оптимизация параметров в Python
  11. Роль запятой в Python
  12. Оператор обр. импликации
  13. Обработка ошибок в JSON данных
  14. Виртуальное окружение Python
  15. Установка random seed в Python
  16. Функции any() и all() в Python
  17. Преобразование многоуровневого словаря
  18. Работа с переменными в Python
  19. Проверка ввода с помощью isdigit
  20. GitHub в Telegram: подписка на уведомления
  21. Условное добавление элементов в список
  22. Обработка исключения UnboundLocalError
  23. Оптимизация гиперпараметров в Python
  24. Объединение множеств в Python
  25. Оператор (*) в Python
  26. Работа со словарями
  27. Создание тестовых данных с Faker
  28. Python Метод del.
  29. Вызов внешних программ в Python с помощью sh
  30. Поиск самого частого элемента
  31. Работа с NumPy
  32. Решатель судоку на Python с pygame
  33. TypedDict для kwargs в Python 3.12
  34. Проверка подстроки в строке с помощью in
  35. Создание новых списков через list comprehensions
  36. Область видимости переменных в Python
  37. Модуль subprocess: запуск внешних команд
  38. Тест скорости набора текста на Python
  39. Обход словаря в Python
  40. Удаление символа из строки
  41. Вывод с переменной через запятую
  42. Подсчет элементов в списке с Counter
  43. Модуль functools в Python

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