限制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