是否可以在列表理解中创建和引用对象?

Mar*_*son 3 python list-comprehension python-2.7

我有一个网址列表,我想要净位置.

urls = ["http://server1:53000/cgi-bin/mapserv?map=../maps/Weather.wms.map", 
        "http://server2:53000/cgi-bin/mapserv?map=../maps/Weather.wms.map"]
Run Code Online (Sandbox Code Playgroud)

我通常会写这样的东西:

servers = []
for url in urls:
    o = urlparse(url)
    servers.append(o.netloc)
Run Code Online (Sandbox Code Playgroud)

然后我立刻想到,"我应该把它理解为"并继续写这个(当然这不起作用):

servers = [o.netloc() for urlparse(url) as o in urls]
Run Code Online (Sandbox Code Playgroud)

python有办法做这种复杂的理解吗?(也许在3.x?)

在更具学术性的层面上,这种复杂的理解能否与"pythonic"相距甚远?这对我来说似乎相对直观,但我之前完全偏离了这些事情.

Mar*_*ers 8

无需分配中间名称,只需直接访问.netloc返回值的属性urlparse():

servers = [urlparse(url).netloc for url in urls]
Run Code Online (Sandbox Code Playgroud)

以这种方式做这是一个完美的pythonic事情.