Выберите первые 3 доменных URL-адреса в списке URL-адресов в Python - PullRequest
0 голосов
/ 02 декабря 2018

Я изо всех сил пытаюсь понять логику определенной операции.

У меня есть список URL-адресов, например:

["https://example1.com", 
"example2.com",
"http://example3.com/subpage",
"http://example4.com/",
"http://example5.com/subpage"]

, и мне нужно извлечь первые 3 результатано ТОЛЬКО если результат только домен.Если у него есть подстраница, я хочу ее игнорировать.

Есть идеи, как это сделать?Я думаю, что первым делом нужно пройти по списку и удалить все, что является подстраницей, а затем просто выбрать первые 3.

Но как лучше всего решить, является ли URL-адрес только доменом или подстраницей?

Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете отфильтровать список и затем использовать нарезку списка:

import re
d = ['https://example1.com', 'example2.com', 'http://example3.com/subpage', 'http://example4.com/', 'http://example5.com/subpage']
new_d = [i for i in d if re.findall('\.[a-z]{3}$|\.[a-z]{3}/$', i)][:3]

Вывод:

['https://example1.com', 'example2.com', 'http://example4.com/']

Редактировать: объяснение регулярного выражения:

\.: совпадениявхождение "."

[a-z]{3}: соответствует трем буквам после "."

$: выражение привязки в самом конце строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...