擅长:python、mysql、java
<p>如果您希望在当前代码中尽可能少地更改,我建议将最后一个值存储在某种临时变量中,每次移动到下一行时都会覆盖该临时变量。将当前行的国家代码与前一行的国家代码进行比较,如果它们不同,则打印该行的索引。如果行的索引不容易访问,则可以实现自己的计数器变量来跟踪您所在的索引。可能有更优雅的解决方案,但这些都会奏效。在</p>
<p>下面是我上面描述的一个实现示例:</p>
<pre><code>i = 0
temp = None
for row in ws.iter_rows(min_row=1,max_col=1,max_row=223181):
for cell in row:
if cell.value != temp:
print(i)
temp = cell.value
i += 1
</code></pre>
<p>您可能希望在第一次分配临时变量时使用不同的方法。这将打印第一个值。在</p>
<p>最高投票权的解决方案<a href="https://stackoverflow.com/questions/10614518/iterating-over-a-range-of-rows-using-ws-iter-rows-in-the-optimised-reader-of-ope/13962583#13962583">here</a>为打印索引问题提供了一个更优雅的解决方案。另外,<a href="https://openpyxl.readthedocs.io/en/latest/optimized.html#" rel="nofollow noreferrer">this</a>文档告诉我们有一种更干净的方法来打开和读取文件(请参阅“只读”部分)。在</p>