@pcdesign

Как в intersection задать упорядочение?

Сравниваем два массива и находит совпадающие элементы:
>>> a = ['Мышь', 'Дом', 'Home', 'Лом', 'a', 'z']
>>> b = ['Мышь', 'Лом', 'z', 'jo']
>>> set(a) & set(b)
{'Лом', 'z', 'Мышь'}


Хотелось бы получить, в том порядке в каком они лежали в массиве.
То есть
'Мышь', 'Лом', 'z'

По мере нахождения.
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Да, вам нужна структура данных, подобная множеству, но с сохранением порядка элементов.
Возьмите OrderedSet отсюда.
Код с использованием OrderedSet:
from django.utils.datastructures import OrderedSet
a = ['Мышь', 'Дом', 'Home', 'Лом', 'a', 'z']
b = ['Мышь', 'Лом', 'z', 'jo']
OrderedSet(a) & OrderedSet(b)

Получится:
OrderedSet(['Мышь', 'Лом', 'z'])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Astrohas
@Astrohas
Python/Django Developer
Set набор неупорядоченных данных. единственное, что можно сделать, это самому реализую класс потомок от OrderedDict и MutableSet сделать собственный set
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы