考虑这段代码
description = ""
desc = hxs.select('/html/head/meta[2]/@content').extract()
if len(desc) > 0:
description = desc[0]
item["description"] = description
Run Code Online (Sandbox Code Playgroud)
desc是一个字符串列表.如果list为空,则description为空字符串,如果不是,则为列表中的第一个元素.如何使它更pythonic?
忘记提到我必须使用2.7
你可以写:
desc = hxs.select("/html/head/meta[2]/@content").extract()
item["description"] = desc[0] if len(desc) > 0 else ""
Run Code Online (Sandbox Code Playgroud)
正如下面的评论中所指出的,您还可以直接在布尔上下文中评估列表:
item["description"] = desc[0] if desc else ""
Run Code Online (Sandbox Code Playgroud)
或者,您可以利用next支持默认值的事实
item["description"] = next(iter(desc), "")
Run Code Online (Sandbox Code Playgroud)