繁体   English   中英

Python - 在字典列表中查找不同的域

[英]Python - Find distinct domains inside a list of dictionaries

我有一个列表(里面有字典),我想知道里面有多少不同的域。

我有这样的事情:

list = [
    {'url': 'https://stackoverflow.com/questions', 'number': 10},
    {'url': 'https://stackoverflow.com/users', 'number': 40},
    {'url': 'https://stackexchange.com/tour', 'number': 40}, 
    {'url': 'https://stackexchange.com/whatever/whatever', 'number': 25}
] 

期望的结果如下所示:

unique_domains = [
    {'url': 'https://stackoverflow.com'},
    {'url': 'https://stackexchange.com'}
]

或者也许只是:

unique_domains = ['stackoverflow.com', 'stackexchange.com']

两者都可以,所以我想无论是更容易还是更快。

我想我可以为此使用正则表达式,但也许有更多的pythonic和/或有效的方法来做到这一点?

谢谢!

您可以将urllib.parse.urlparse (来自标准库)与集合理解(以避免重复)一起使用:

from urllib.parse import urlparse

unique_domains = {urlparse(item['url']).netloc for item in given_list}

如果需要,可以通过list(unique_domains)set转换为list 这比正则表达式解决方案更可靠。

(请不要调用变量list ,它会影响有用的内置)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM