Курс 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. Константы в модуле cmath
  2. PEP-401: оператор
  3. Блок else в циклах.
  4. Работа с кортежами в Python
  5. Подсказки типов в Python
  6. Удаление элементов из списка в Python
  7. Функция enumerate() — Python
  8. Декораторы с аргументами
  9. Выражения-генераторы в Python
  10. Метод сравнения объектов в Python
  11. Переопределение метода __rshift__
  12. Удаление элемента из списка в Python
  13. Получение локальных переменных в Python
  14. Объединение множеств в Python
  15. Возведение в квадрат с помощью itertools
  16. Проверка индексов коллекции
  17. Безопасные SQL-запросы в Python 3.11
  18. Вычисление натуральных логарифмов в NumPy
  19. Создание словарей с defaultdict()
  20. Оптимизация создания строк
  21. Создание словаря через dict comprehension
  22. Аргумент по умолчанию
  23. Метод join() для объединения элементов
  24. Работа с контекст-менеджером «with»
  25. Замыкания в Python
  26. Разработка игры Pong с turtle
  27. Утечки переменных цикла в Python 3.x
  28. Возврат нескольких значений
  29. Тестирование функции сложения
  30. Удаление файлов с shutil.os.remove()
  31. Переворот строки
  32. Оператор match в Python
  33. Поиск всех индексов подстроки
  34. Возврат нескольких значений
  35. Декоратор защиты анонимных пользователей
  36. Проблема с изменяемыми аргументами
  37. Подписка на SelectelNews в Twitter
  38. Обработка исключения UnboundLocalError
  39. Форматирование строк с % в Python
  40. Использование модуля math
  41. Расширение операции побитового «и» в Python
  42. Progress с библиотекой tqdm
  43. Создание циклической ссылки
  44. Открытие и запись файлов
  45. Создание пользовательской коллекции в Python
  46. Solidity для DeFi Ethereum

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