1、lambda 运算符
使用lambda语句可以创建表达式形式的匿名函数:
lambda args : expression
args是以逗号分隔的参数列表,而expression是用到这些参数的表达式,例如:
a = lambda x, y: x + y r = a(2, 3) # r的值为5
使用lambda语句定义的代码必须是合法的表达式。lambda语句中不能出现多条语句和其他非表达式语句,如for或while。lambda表达式遵循与函数相同的作用域规则。
lambda的首要用途是指定短小的回调函数。
2、sorted(iterable[, cmp[, key[, reverse]]])
返回一个经过排序的列表,源序列即是一个迭代器iterable。
- cmp是一个比较函数,它带有两个参数,返回值为负数(参数1小于参数2)、0(参数1等于参数2)、正数(参数1大于参数2)三种。
- key则是一个带一个参数的函数,这个参数即是iterable中的一项,函数体即是以哪种方式决定该项的大小。
- reverse为True代表反向排序。
通常情况下,指定key和reverse两项进行排序要比指定cmp进行排序快。
举例:
>>> students = [(‘john‘, ‘A‘, 15), (‘jane‘, ‘B‘, 12), (‘dave‘, ‘B‘, 10),] >>> sorted(students, key=lambda student : student[2]) # sort by age [(‘dave‘, ‘B‘, 10), (‘jane‘, ‘B‘, 12), (‘john‘, ‘A‘, 15)]
>>> dic = {‘a‘:31,‘b‘:30,‘c‘:32} >>> print sorted(dic.iteritems(), key=lambda d:d[1], reverse=False) [(‘b‘, 30), (‘a‘, 31), (‘c‘, 32)] # iteritems方法将字典转换为键值迭代器,每一项是一个元组(key, value)