我正在爲XML電子表格中的給定公式構建參考地圖的任務。例如,對於以下行:由python導航電子表格xml
<row>
<cell></cell>
<cell></cell>
<cell index="5"></cell>
<cell></cell>
<cell></cell>
<cell index="9"></cell>
<cell></cell>
......
</row>
如果我用enumerate(row.findall("cell"))
它將返回a=[1, 2, 3, 4, 5, 6, 7]
。但是,屬性index
提供了特定單元的信息。也就是說,而不是a
我應該得到b=[1, 2, 5, 6, 7, 9, 10]
(注意第三個單元是,所以它改變枚舉,類似的事情發生時,索引是後)。
我如何從a
到b
?我想要更多Pythonic計劃。我現在有我類似C的語法(這我有點無聊的):
testcases = [[1, 2, 5, 4, 5, 9, 8], [5, 4, 5, 9, 8], [1, 2, 5, 4, 5, 9]]
for cells in testcases:
first = None
for i, c in enumerate(cells):
if c>i+1:
first = c
if i>0 and c < cells[i-1]:
cells[i]=cells[i-1]+1
elif i>0 and c> cells[i-1]+1 and first is None:
first=c
for j in range(i)[::-1]:
cells[j]=c-1
c=c-1
print(cells)
措辭有點難以解析。請問,你能否重新說明它,並且在你的例子和背景下更清楚些? – gpoo
我已編輯帖子。謝謝 – archlight
該示例中的代碼似乎並未嘗試解決該問題。你是如何從上下文中給出的例子構造'testcases'的? – gpoo