毫无例外地从列表中获取第一个元素

2024-05-12 15:46:05 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑一下这个代码

description = ""
desc = hxs.select('/html/head/meta[2]/@content').extract()
if len(desc) > 0:
    description = desc[0]       
item["description"] = description

desc是字符串列表。如果列表为空,则说明是空字符串,如果不是,则说明是列表中的第一个元素。如何让它更像Python?

忘了说我必须用2.7


Tags: 字符串代码列表lenifhtmlextractdescription
3条回答

或者,您可以使用next支持默认值这一事实

item["description"]  = next(iter(desc), "")

您可以使用异常处理(尽管它比使用条件表达式更详细)。

desc = hxs.select('/html/head/meta[2]/@content').extract()
try:
    description = desc[0]
except IndexError:
    description = ""

你可以写:

desc = hxs.select("/html/head/meta[2]/@content").extract()
item["description"] = desc[0] if len(desc) > 0 else ""

正如下面的注释所指出的,您还可以在布尔上下文中直接计算列表:

item["description"] = desc[0] if desc else ""

相关问题 更多 >