開始比方說,我有一個這樣的名單:替換具有獨特的項目列表中的項目從0
Y=[1018, 1018, 1011, 1012, 1013, 1014, 1019, 1019, 1017]
什麼是最Python的方式與
- 最低未使用的整數來替代每個號碼(> = 0),如果該號碼之前尚未
- 看出,已被用來取代數否則
以便列表變爲:
Y=[0, 0, 1, 2, 3, 4, 5, 5, 6]
這不是重要的是,第一個元素是0,但必須有數字的兩個列表之間的唯一最大匹配(=分配),即還,這是一個很好的解決方案:
Y=[3, 3, 4, 0, 2, 5, 6, 6, 1]
編輯:我試過是一些使用find循環,我的解決方案是非常難看的,我知道有更好的方式來做到這一點,它不是有關我多麼糟糕做到了:d
既然SO不是代碼編寫服務,如果你想得到一個正確的答案,你需要添加你迄今試過的代碼! – Kasramvd
你是否還希望'1018'出現在同一個整數中,如果它出現在列表的後面? '[1018,1011,1018]'應該是'[0,1,0]還是'[0,1,2]'? –
@AdamSmith是的,[0,1,0]是正確的(它就像條款的替代) – pawawa