1
我有這樣的元組的列表:從元組列表修改每個元組(並最終只刪除)
tradeRanges = [(0,3), (10,14), (16,16), (21,23), (25,25)]
我想要做的是:
- 以每條記錄並分析兩個數字之間的差異;
- 如果這個差異不是零,那麼我想追加第三個元素,這實際上是這兩個數字的區別;如果它爲零,我只想將元組拉出列表。
最後的輸出,因此,會是這樣:
tradeRanges = [(0,3,3), (10,14,4), (21,23,2)]
有了這個目的,我試圖寫下面的腳本:
for tups in tradeRanges:
tradeRanges.remove(tups)
tups = list(tups)
lenTup = tups[1]-tups[0]
if lenTup > 0:
tups.append(lenTup) #so when it's done I would have the list into the same order
tups = tuple(tups)
tradeRanges.append(tups)
這裏的問題是,它跳過元素。當它獲取元素(0,3)並將其移除時,而不是將元素(10,14)保存在內存中,它將保存元素(16,16)。我有一個模糊的想法,爲什麼發生這種情況(可能for循環正在照顧元素的位置?),但我不知道如何解決它。有沒有優雅的方式,或者我應該使用一些控制變量來考慮列表中元素的位置? tups =元組(tups) tradeRanges.append(tups)
+1嘿,43秒打我:P –
您在4分鐘解決什麼我掙扎大約兩個小時。那麼,謝謝(它完美地工作)! –
p.s.我會在8分鐘內接受這個答案;) –