Курс 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. Распаковка элементов последовательности
  3. Метод join() для объединения строк
  4. Создание тестовых данных с Faker
  5. Красивый вывод списка
  6. Создание словаря через dict comprehension
  7. Библиотека funcy: удобные утилиты
  8. Функция reversed() в Python
  9. Наследование в программировании
  10. Добавление кнопки в tkinter
  11. Установка и использование howdoi
  12. Сортировка элементов с OrderedDict
  13. kwargs в Python
  14. Логирование в Python
  15. Работа с timedelta в Python
  16. Метод hash в Python
  17. Введение в PyTorch
  18. Работа с itertools
  19. Удаление дубликатов с помощью множеств
  20. Копирование словарей и списков в Python
  21. Python: Splat-оператор и splatty-splat
  22. Проверка версии Python
  23. Функция product() в Python
  24. Создание списков в Python
  25. Создание функций с произвольным количеством аргументов
  26. Оболочка Python
  27. Извлечение аудио из видео
  28. Скрытие вывода данных
  29. Функция map() и ленивая оценка
  30. Использование функции enumerate()
  31. Python Тесты и Гайды
  32. Dict Comprehension в Python
  33. Проверка ввода с помощью isdigit
  34. Фильтрация последовательности
  35. Многострочные комментарии в Python
  36. F-строки в Python
  37. Выборка чисел
  38. Отладка кода
  39. Кортеж в Python: создание, доступ, изменение
  40. Группировка элементов в словарь
  41. PEP-401: оператор
  42. Операторы объединения в Python 3.9
  43. Шаблоны и наследование в Flask
  44. Транспонирование 2D-массива с помощью zip
  45. Оценка выражений генератора в Python
  46. Разделение строк методом split()
  47. Преобразование чисел в слова
  48. Условное добавление элементов в список
  49. Запрос DELETE с библиотекой requests

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