2017-07-03 25 views
3

我試圖打印一個整數列表,每行一個項目,在交換最後一個項目的最大項目的位置後。 交換項目後,它們仍然以原始位置打印。您可以將列表索引設置爲原始列表中的變量嗎?

large = values[values.index(max(values))] 
last = values[-1] 

large, last = last, large 

for i in values: 
    print i 

對不起,如果這已被回答,我還沒有找到它。

+0

@Chris_Rands在我發佈我的問題之前,我已經看過,我無法解決我的問題。 – CoffeeCat

回答

6

您可以通過實現它:

max_index = values.index(max(values)) 
values[max_index], values[-1]= values[-1], values[max_index] 

當你輸入你要明白,大,最後是從列表中值分離變量large, last = last, large。意味着即使你改變它們,列表也不會改變。

爲了更新列表,你需要爲上面鍵入更新列表中的值。

+0

OP似乎是'python'的新手,可能列表理解不是最好的主意。 – TheDarkKnight

+1

這不是一個列表理解,它是一個元組包/解包來交換數據的慣用方式。 –

+0

@ Jean-FrançoisFabre我今天學到了一些新東西。 – TheDarkKnight

2

您需要重新分配大,最後,你想他們位於列表中。交換後添加:

values[values.index(max(values))] = large 
values[-1] = last 
相關問題