gpt4 book ai didi

python - 根据条件分隔列表项 - Python

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:28 28 4
gpt4 key购买 nike

所以我有一个具有不同目录结构的 url 列表;即:

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/

我需要遍历此列表并在 python 中按 tld(顶级域)分组。我正在使用开源 python 库循环提取 tld;即:

for item in list:
registered_domain = tldextract.extract(item).registered_domain

我的问题是当我遍历混合 url 列表时,如何将所有具有相同基本 tld 的 url 分组到单独的列表中;即:

Output:
[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/]

最佳答案

您可以将 collections.defaultdictstr.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/']})

关于python - 根据条件分隔列表项 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041705/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com