Вы можете использовать collections.defaultdict
в сочетании с str.split
. Это создаст словарь, сопоставляющий домены с URL.
from collections import defaultdict
L = ['xyz.com/1/', 'xyz.com/2/', 'xyz.com/3/', 'xyz.com/4/', 'xyz.com/5/',
'abc.com/6/', 'abc.com/7/', 'abc.com/8/', 'abc.com/9/', 'abc.com/10/']
d = defaultdict(list)
for url in L:
d[url.split('/', 1)[0]].append(url)
# alternatively:
# d[tldextract.extract(url).registered_domain].append(url)
Результат
print(d)
defaultdict(list,
{'xyz.com': ['xyz.com/1/', 'xyz.com/2/', 'xyz.com/3/',
'xyz.com/4/', 'xyz.com/5/'],
'abc.com': ['abc.com/6/', 'abc.com/7/', 'abc.com/8/',
'abc.com/9/', 'abc.com/10/']})