Как сделать пересечение массивов в Python
Python
Senior
Без компании
Как сделать пересечение массивов в Python
Ответы
Для нахождения пересечения массивов (общих элементов) в Python можно использовать несколько подходов:
- Через преобразование в множества (эффективно, но теряет порядок и дубликаты):
```
arr1 = [1, 2, 2, 3]
arr2 = [2, 3, 4]
intersection = list(set(arr1) & set(arr2)) # [2, 3]
```
- С использованием list comprehension (сохраняет порядок первого массива):
```
intersection = [x for x in arr1 if x in arr2]
```
- С помощью `collections.Counter` (сохраняет количество повторений):
```
from collections import Counter
counter1 = Counter(arr1)
counter2 = Counter(arr2)
intersection = list((counter1 & counter2).elements())
```
Для больших массивов лучше использовать первый вариант, так как операции с множествами выполняются за O(1) в среднем. Если важен порядок или нужно сохранить дубликаты - подойдут другие варианты.