【发布时间】:2009-11-23 16:56:01
【问题描述】:
(我正在使用 OpenXML SDK 在 IronPython 中与 WordprocessingDocument 对象交互工作,但这确实是一个通用的 Python 问题,应该适用于所有实现)
我正在尝试从一些 Word 文档中刮出一些表格。对于每张桌子, 我有一个迭代器,它给了我表格行对象。然后,我使用以下生成器语句从每一行获取一个单元格元组:
for row in rows:
t = tuple([c.InnerText for c in row.Descendants[TableCell]()])
每个元组包含 4 个元素。现在,在每个元组的t[1] 列中,我需要对数据应用正则表达式。我知道元组是不可变的,所以我很高兴要么创建一个新元组,要么以不同的方式构建元组。鉴于row.Descendants[TableCell]() 返回一个迭代器,从我想修改返回的nth 元素的迭代器构造元组的最Pythonic(或至少最简单)的方法是什么?
我现在的蛮力方法是从左切片 (t[:n-1])、t[n] 和右切片 (t[n+1:]) 中的修改数据创建一个元组,但我觉得像 itertools 模块应该有什么可以帮助我的。
【问题讨论】:
标签: python iterator ironpython generator