# python builtins 内建函数

`abs`(x)

```>>> abs(0)
0
>>> abs(12)
12
>>> abs(-12)
12```

`all`(iterable)

```def all(iterable):
for element in iterable:
if not element:
return False
return True```
```>>> all([0,3])
False
>>> all([1,3])
True
>>> all([])
True
>>> bool(0)
False```

`any`(iterable)

```def any(iterable):
for element in iterable:
if element:
return True
return False```
```>>> any([1,3])
True
>>> any([True,3])
True
>>> any([False,3])
True
>>> any([False,0])
False
>>> any([])
False```

`min`(iterable*[, keydefault])

`min`(arg1arg2*args[, key])

`max`(iterable*[, keydefault])

`max`(arg1arg2*args[, key])

```>>> min(1,2,3)
1
>>> min(1,'a',3)
1
>>> min(5,'a',3)
3
>>> min(5,'1',3)
3
>>> min(1,2,3)
1
>>> max([38,22,38])
38
>>> max(set([38,22,38]))
38```

pow(x, y[, z]) 返回x的y次方;如果存在z，则返回x到幂y，模z(比pow(x, y) % z计算效率更高)。

```>>> pow(2,3)
8
>>> pow(2,3,3)
2
>>> pow(2,-3)
0.125```

Python内建了`map()``reduce()`函数。

```>>> def f(x):
...     return x * x
...
>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]```

`map()`传入的第一个参数是`f`，即函数对象本身。

```L = []
for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
L.append(f(n))
print L```

```>>> map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])
['1', '2', '3', '4', '5', '6', '7', '8', '9']```

`reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)`

```>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25```

```>>> def fn(x, y):
...     return x * 10 + y
...
>>> reduce(fn, [1, 3, 5, 7, 9])
13579```

```>>> def fn(x, y):
...     return x * 10 + y
...
>>> def char2num(s):
...     return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
...
>>> reduce(fn, map(char2num, '13579'))
13579```

```def str2int(s):
def fn(x, y):
return x * 10 + y
def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
return reduce(fn, map(char2num, s))```

```def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]

def str2int(s):
return reduce(lambda x,y: x*10+y, map(char2num, s))```

0 条评论

• ### python 函数式编程 map reduce

如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clusters”，你...

• ### linux elasticsearch 删除索引

查看索引使用:curl -XGET '127.0.0.1:9200/_cat/indices?v'

• ### python list.remove的坑

那是因为list的遍历是基于下标的，当你删除其中的一个元素的时候，列表实际上已经发生了变化，该元素后面的所有元素都往前移动了一个位置，所以下次遍历的时候就会跳过...

• ### Python高阶函数_map/reduce/filter函数

如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你...

• ### python 函数式编程 map reduce

如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clusters”，你...

• ### Python函数式编程-map/reduce

map()函数接收两个参数，一个是函数，一个是Interable，map将传入的函数依次作用到序列的每个元素，并把结果作为新的Iterator返回。

• ### python高阶函数：map(f,[list]),reduce(f,[list],可选初始值)，

map，reduce和filter三个函数在python3和python2中发生了较大的差异。具体请看文章后面部分。 1. python的map()函数 ...

• ### python高阶函数：map(f,[list]),reduce(f,[list],可选初始值)，

map，reduce和filter三个函数在python3和python2中发生了较大的差异。具体请看文章后面部分。 1. python的map()函数 ...

• ### 详解Python函数式编程之map、reduce、filter

map()、reduce()、filter()是Python中很常用的几个函数，也是Python支持函数式编程的重要体现。不过，在Python 3.x中，red...

• ### 新零售下中小微零售们如何赋能

文/黄成甲（微：Alankou）   自从2016年雷军提出新零售的概念后，巨头们不断在新零售领域进行探索，小米自2016年2月在北京落地第一家完全自...