'''
【程序5】列表排序sort
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
'''
'''
知识点
排序:
原型sort(*, key=None, reverse=None) 该函数会改变列表自身元素的排序
reverse设置反序,默认False
key 指定一个key函数,即只有一个参数(用于传入列表元素),返回排序的键值的函数,
该选项默认为None,即排序键值为列表元素本身
模块functools:
用于转换一个比较函数为一个key 函数,可用于sort这样的排序函数
该比较函数,接受两个参数,即比较的两个元素,小于返回负数,等于返回0,大于返回正数。
'''
#Python3.3.5
import functools
l = []
for i in range(3):
x = int(input('integer:\n'))
l.append(x)
l.sort()
print(l)
l.sort(reverse=True)
print(l)
def cmp(ele):
return ele*ele
def cmp2(ele1,ele2):
if ele1>ele2: return 1
elif ele1==ele2:return 0
else: return -1
k=[1,-4,-3]
k.sort(key=cmp)
print(k)
k.sort(key=functools.cmp_to_key(cmp2))
print(k)