用python的3行代码实现快速排序最近,我在看python cookbook。 那个例子很棒,所以请在这里帮忙做笔记
主要利用行数递归调用和Python切片特性来解释每行代码的含义。
第1行: #coding:utf-8指定utf-8编码第2行:定义函数名称和参数第3行:判断列表长度是否小于或等于1,小于或等于1则返回列表第4行:用递归函数连接的列表,[ lt for lt in l 返回小于的列表,[ge for ge in L[1:] if ge=L[0]],返回大于L[0]的列表,再加上L[0],构成完整列表的第四行是最重要的,返回三个部分。
小于列表中第一个元素的所有元素列表递归调用第一个元素大于列表中第一个元素的所有元素列表递归调用部分的处理过程相同,以列表中的第一个参数为中间值,将列表分为两部分
最后两行是测试代码,生成无序列表并打印排序结果。
#编码3360 utf-8 def qsort (l ) : if len(L ) l=1: returnlreturnqsort ([ ltforltinl [ 1: ] if LTL [0] ) ) l [ 003360