<p>(我正在使用openxmlsdk在IronPython中交互地处理WordprocessingDocument对象,但这实际上是一个通用的<a href="https://www.cnpython.com/qa/" class="inner-link">python问题</a>,应该适用于所有实现)</p>
<p>我正试图从一些Word文档中找出一些表格。对于每一张桌子,
我有一个迭代器给我表行对象。然后,我使用下面的生成器语句从每行获取一个单元格元组:</p>
<pre><code>for row in rows:
t = tuple([c.InnerText for c in row.Descendants[TableCell]()])
</code></pre>
<p>每个元组包含4个元素。现在,在每个元组的第<code>t[1]</code>列中,我需要对数据应用一个正则表达式。我知道元组是不可变的,所以我很乐意创建一个新的元组,或者以不同的方式构建元组。假定<code>row.Descendants[TableCell]()</code>返回一个迭代器,那么从迭代器构造元组的最Pythonic(或至少最简单的)方法是什么?我想修改返回的第<code>n</code>个元素?在</p>
<p>我现在的暴力方法是从左片(<code>t[:n-1]</code>)、在<code>t[n]</code>和右片(<code>t[n+1:]</code>)中修改的数据创建一个元组,但是我觉得<code>itertools</code>模块应该有一些东西可以帮助我。在</p>
<p>我会这样做:</p>
<pre><code>temp_list = [c.InnerText for c in row.Descendants[TableCell]()]
temp_list[2] = "Something different"
t = tuple(temp_list)
</code></pre>
<p>它的工作原理如下:</p>
^{pr2}$