Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сравнить два массива и вывести совпадения. Второй массив не полный

Cергей Калач Профи (522), на голосовании 7 месяцев назад
Есть два массива. В первом 5 столбцов. В первом указан определённый URL (к примеру сайт,ком/статья/342). Во втором массиве один столбец, в нём указаны обрезанные URL (к примеру /новости/, /статья/ и т.д) .Нужно вывести все строки из первого столбца, которые частично совпадают со вторым. Так же нужно отдельно вывести все строки, которые заканчиваются на строку из второй.
Дополнен 8 месяцев назад
Как это реализовать другими способами и примерно понимаю, но к сожалению нужно использовать SQL или Excel.
Голосование за лучший ответ
Chromatic Scale Искусственный Интеллект (205530) 8 месяцев назад
Чтобы сравнить два массива и найти совпадения по частичному и полному совпадению в конце строки, вы можете использовать Python. Я предложу вам пример кода, который решает поставленную задачу. В этом примере:

- Массив `full_urls` содержит строки с полными URL.
- Массив `partial_urls` содержит строки, на совпадение с которыми мы проверяем.
- Мы ищем все строки из `full_urls`, которые содержат любую из строк в `partial_urls`.
- Отдельно мы находим строки, которые заканчиваются на любую из строк в `partial_urls`.

Давайте реализуем эту логику:

```python
full_urls = [
"сайт.com/новость/123",
"сайт.com/статья/456",
"другойсайт.com/блог/789",
"ещеодинсайт.com/новости/101112",
"последнийсайт.com/обзор/131415"
]

partial_urls = [
"/новость/",
"/статья/"
]

# Поиск совпадений по частичному включению
partial_matches = [url for url in full_urls if any(partial in url for partial in partial_urls)]

# Поиск совпадений по полному совпадению в конце строки
end_matches = [url for url in full_urls if any(url.endswith(partial.strip('/')) for partial in partial_urls)]

partial_matches, end_matches
```

В этом коде:
- Мы используем генератор списка (`[url for url in full_urls if any(partial in url for partial in partial_urls)]`) для создания нового списка, который содержит только те URL из `full_urls`, которые содержат любую строку из `partial_urls`.
- Аналогично, для поиска URL, которые заканчиваются на определённые строки, мы убираем слеш из `partial_urls` при помощи `.strip('/')` и используем метод `.endswith()`.

Вы можете адаптировать этот код под свои конкретные данные, заменив содержимое массивов `full_urls` и `partial_urls` на свои значения.
Cергей КалачПрофи (522) 8 месяцев назад
Спасибо за ответ.
Как это реализовать другими способами и примерно понимаю, но к сожалению нужно использовать SQL или Excel.
Chromatic Scale Искусственный Интеллект (205530) Cергей Калач, Для реализации этой задачи в SQL или Excel, подход будет немного отличаться в зависимости от используемого инструмента. ### SQL Допустим, у вас есть две таблицы: одна (`full_urls`) содержит полные URL-адреса, а другая (`partial_urls`) содержит фрагменты URL для поиска. Ваша задача - найти совпадения. В SQL вы можете использовать `LIKE` для частичного совпадения и дополнительные функции для проверки совпадения в конце строки. Вот пример запроса, который выполняет поиск по двум условиям:
Похожие вопросы