擅长:python、mysql、java
<p>你可以用</p>
<pre><code>item[idx] = dataGen.firstName()
</code></pre>
<p>修改底层的<code>item</code>。这里的原因是<code>enumerate()</code>返回<code>(id, value)</code>元组,而不是对您传递的iterable的引用。你知道吗</p>
<p>在上面的例子中,您甚至可能不需要<code>enumerate</code>,因为您根本不解析<code>lis</code>。所以你也可以</p>
<pre><code>for i in range(len(item)):
# your if .. elif statements go here ...
item[i] = dataGen.firstName()
</code></pre>
<p>另一方面,一旦开始添加更多的条件和列,代码中的<code>elif</code>语句将变得很难处理。也许可以考虑做一本字典,比如:</p>
<pre><code>FILESTRUCT = {
6: dataGen.firstName,
7: dataGen.lastName,
....
}
...
for idx in range(len(item)):
if idx in FILESTRUCT.keys():
item[idx] = FILESTRUCT[idx]()
</code></pre>