Record and Summarize

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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)

 

posted on 2014-01-16 22:22  zhangjing327  阅读(426)  评论(0编辑  收藏  举报