【发布时间】:2014-11-04 11:59:07
【问题描述】:
我有一个 XML 文件,我需要从中提取 ID 和 Title 字段(在页面标签下)。这就是我正在做的,它工作正常。但是,我对 elem.find('title) 的三个调用不满意。有没有更好的方法可以通过理解来避免这种情况?我知道循环编写可以解决这个问题。
import xml.etree.ElementTree as ET
tree = ET.parse(some file)
root = tree.getroot()
id_title_list = [(elem.find('id').text, elem.find('title').text)
for elem in root.findall('page')
if elem.find('title').text.startswith('string1') or
elem.find('title').text.startswith('string2')]
【问题讨论】:
-
这三个电话是一个问题,还是premature optimization(万恶之源)的情况?
-
不是两次调用
startswith,而是使用元组('string1', 'string2')作为参数进行一次调用。
标签: python xml list list-comprehension elementtree