猿问

使用 Slice 和 __setitem__ 方法的冒泡排序

根据Paul 的回答,我尝试运行以下冒泡排序算法,该算法使用slice和__setitem__方法;我很肯定会有一些简单的事情我做得不对,不知道那可能是什么?


代码

def bubblesort(l):

    [l.__setitem__(slice(i, i + 2), (l[i:i + 2] if l[i] < l[i + 1] else l[i +  1:i - 1:-1])) for j in range(0, len(l)) for i in range(0, len(l) - 1)]

    return l


l = [1,5,-5,0,10,100]

bubblesort(l)

print(l)

期望的输出

[-5, 0, 1, 5, 10, 100]


翻过高山走不出你
浏览 115回答 1
1回答

慕侠2389804

When&nbsp;i == 0,l[i + &nbsp;1:i - 1:-1]计算结果为,[]因此您最终会在迭代中缩短列表。
随时随地看视频慕课网APP

相关分类

Python
我要回答