交换蟒蛇列表中的两个元素



我试图交换列表中的两个元素,但可能我做错了!它不交换元素。

f= [4,3,1,2]
f[0],f[f.index(min(f[2:]))] = f[f.index(min(f[2:]))] ,f[0]
print(f)
[4, 3, 1, 2]
ind = f[2:].index(min(f[2:])) + 2
f[ind], f[0] = f[0], f[ind]

然而,这段代码似乎非常无效,因为在最坏的情况下,您必须解析f两次(一次查找最小值,另一次查找其index,所以我建议使用for循环,或者如果您已经在项目中使用numpy,则使用numpy.argmin

ind = 2
minim = f[2]
for i,t in enumerate(f[3:]):
if t < minim:
ind = i + 3
minim = t
f[0], f[ind] = minim, f[0]
var1cpy = f[f.index(min(f[2:]))]
f[f.index(min(f[2:]))] = f[0]
f[0] = var1cpy

它对我有效

最新更新