2017-07-03 24 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 
相关问题