tec*_*cal 3 python ironpython iterator generator
(我正在使用OpenXML SDK与IronPython中的WordprocessingDocument对象进行交互式工作,但这实际上是一个普遍的Python问题,应该适用于所有实现)
我试图从一些Word文档中删除一些表.对于每个表,我有一个给我表行对象的迭代器.然后,我使用以下生成器语句从每行获取单元格元组:
for row in rows:
t = tuple([c.InnerText for c in row.Descendants[TableCell]()])
Run Code Online (Sandbox Code Playgroud)
每个元组包含4个元素.现在,在t[1]每个元组的列中,我需要对数据应用正则表达式.我知道元组是不可变的,所以我很高兴要么创建一个新的元组,要么以不同的方式构建元组.鉴于row.Descendants[TableCell]()返回迭代器,从迭代器构造元组的最Pythonic(或至少最简单)方法是什么,我想修改n返回的元素?
我现在的暴力方法是从左切片(t[:n-1]),修改后的数据t[n]和右切片(t[n+1:])创建一个元组,但我觉得itertools模块应该有一些东西可以帮助我在这里.
def item(i, v):
if i != 1: return v
return strangestuff(v)
for row in rows:
t = tuple(item(i, c.InnerText)
for i, c in enumerate(row.Descendants[TableCell]())
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |