Python开发 - 在for循环中存储结果

2 投票
2 回答
1940 浏览
提问于 2025-04-16 18:15

我刚开始学习Python,现在正在写一个解析XML文件的应用程序。我有一个文件夹,里面全是XML文件,我需要一个一个地处理这些文件。每个文件都有一些属性,比如“HeadLine”。我用下面的代码在解析这些文件。

def index(request):
    dirlist = glob.glob("/home/somebody/vids/*.xml")
    for item in dirlist:
        newsML = ET.parse(item)
        NewsLines = newsML.getroot()
        HeadLine = NewsLines.getiterator("HeadLine")

我不太确定的是,如何在每次循环中保存“HeadLine”这个元素。在PHP中,我可以直接把它放进一个多维数组里,比如这样:

$results[]['HeadLine']

在Python中处理这个问题的最好方法是什么?我还在使用Django框架,如果这有帮助的话。

2 个回答

1

因为在这个循环里没有其他操作,所以你可以这样写:

results = [ET.parse(item).getroot().getiterator("HeadLine") for item in dirlist]
5

在Python中,通常的做法是把东西加到一个列表里。

results = []
for item in dirlist:
  newsML = ET.parse(item)
  NewsLines = newsML.getroot()
  HeadLine = NewsLines.getiterator("HeadLine")
  results.append(HeadLine)

如果你还想把迭代器里的所有元素提取出来,变成一个列表,那么最后一行应该写成 results.append(list(HeadLine))

撰写回答