python高手之路 笔记3

限制python运行内存为128MB

$ ulimit -v 131072

a = yield x 解释

  • 调用时使用c = f.send(b);
    结果是
    c = x; a = b

函数化

  • map; filter; enumerate; sorted; any; all; zip

构建字典和集合

{x:x.upper() for x in ['hello', 'world']}
{x.upper() for x in ['hello', 'world']}

functools.partial 替换lambda

from functools import partial
from first import first
def greater_than(number, min=0):
    return number > min
first([-1, 0, 1, 2], key=partial(greater_than, min=42))
#或者使用内置函数
import operator
first([-1, 0, 1, 2], key=partial(operator.le, 0))

iterltools模块中的有用函数

  • chain(*iterables) 依次迭代多个iterables但并不会构造包含所有元素的中间列表。
  • combinations(iterable, r) 从给定的iterable中生成所有长度为r的组合。
  • compress(data, selectors) 对data应用来自selectors的布尔掩码并从data中返回selectors中对应为真的元素。
  • count(start, step) 创建一个无限的值的序列,从start开始,步长为step。
  • cycle(iterable) 重复的遍历iterable中的值。
  • dropwhile(predicate, iterable) 过滤iterable中的元素,丢弃符合predicate描述的那些元素。
  • groupby(iterable, keyfunc) 根据keyfunc函数返回的结果对元素进行分组并返回一个迭代器。
  • permutations(iterable[, r]) 返回iterable中r个元素的所有组合。
  • product(*iterables) 返回iterables的笛卡尔积德可迭代对象,但不使用嵌套的for循环。
  • takewhile(predicate, iterable) 返回满足predicate条件的iterable中的元素。

python抽象语法树

  • import ast
  • Hy
    原文作者:treelake
    原文地址: https://www.jianshu.com/p/dfda31e3cead
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞