我有一个 url 列表,我想要这些网址。
urls = ["http://server1:53000/cgi-bin/mapserv?map=../maps/Weather.wms.map",
"http://server2:53000/cgi-bin/mapserv?map=../maps/Weather.wms.map"]
我通常会这样写:
servers = []
for url in urls:
o = urlparse(url)
servers.append(o.netloc)
然后我立即想到,“我应该把它变成一个理解”并继续写这个(这当然行不通):
servers = [o.netloc() for urlparse(url) as o in urls]
python 有办法做这种复杂的理解吗? (也许在 3.x 中?)
在更学术的层面上,进行这种复杂的理解会不会离“pythonic”太远?这对我来说似乎相对直观,但我以前完全不了解这些事情。
最佳答案
不需要给中间名赋值,直接访问urlparse()
返回值的.netloc
属性即可:
servers = [urlparse(url).netloc for url in urls]
以这种方式完成它是一件完美的 pythonic 事情。
关于python - 是否可以在列表理解中创建和引用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850748/