基础阶段第15例
def paixu(lt,key=None,reverse=False):
for i in range(len(lt)-1):
for j in range(len(lt)-1-i):
if key:
flag=(key(lt[j])<key(lt[j+1]))if reverse else (key(lt[j])>key(lt[j+1]))
else:
flag=(lt[j]<lt[j+1])if reverse else (lt[j]>lt[j+1])
if flag:
lt[j],lt[j+1]=lt[j+1],lt[j]
return lt
lt = [1, 5, 7, 3, 2, 6, 4]
lt = [
{‘name’: ‘dahua’, ‘age’: 18, ‘height’: 170},
{‘name’: ‘erhua’, ‘age’: 17, ‘height’: 160},
{‘name’: ‘xiaohua’, ‘age’: 20, ‘height’: 163},
{‘name’: ‘dagou’, ‘age’: 30, ‘height’: 175},
{‘name’: ‘ergou’, ‘age’: 25, ‘height’: 172},
]
print(paixu(lt,reverse=False,key=lambda d:d[‘age’]))
总结:定义函数与循环结构的综合应用
熟悉变量的结构,key中的变量实际上是字典,也同样是列表中的元素。实际上只是多了一部key的判断