給定一個列表(例如,[1,1,2,1,2,2,3]),它不是從最高到最低排序,並且包含所有數字的倍數,I需要以最小值交換最大值,第二個最大值與第二個分鐘等。因此,我們的示例列表將變爲[3,3,2,3,2,2,1]。另外,爲了澄清,它不只是最大值和最小值,而是最大值和最小值的每一層。所以如果最大值爲4,1和4應該切換爲2和3。交換列表中的最大值和最小值
我發現這個問題的題目How to swap maximums with the minimums? (python)
但考慮到代碼示例顯得冗長,假設有在名單沒有重複。有沒有更好的方法來做到這一點?這似乎是一個簡單的事情。
爲什麼會有不同數量的輸入和輸出的每個整數?它似乎只是'[4 - x for src]',而不是保留實際值。 – user2864740 2014-10-06 02:12:48
也許你可以澄清在[[1,1,8,9])的情況下應該發生什麼 - - 結果應該是「[9,9,8,1]」還是「[9,9,2,1 ]'?我在回答中假設前者,但其他一些答案則假設後者。 – 2014-10-06 02:16:11
就像你說的那樣。 8保持不變,因爲它在最大/最小的層數方面是中等的。 – Caleb 2014-10-06 02:42:41