Filter
def is_odd(n):
return n %
2 ==
1
newlist = filter(is_odd, [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10])
print(newlist)
如果使用lambda表达式:
x=range(1,10)
newlist = filter(lambda x:x%2==1,x)
Map
listx = [
1,
2,
3,
4,
5,
6,
7]
listy = [
2,
3,
4,
5,
6,
7]
listz = [
100,
100,
100,
100]
list_result = map(lambda x,y,z : x**
2 + y + z,listx, listy, listz)
print(
list(list_result))
由于 lambda 中的 z 参数实际是使用了 listz, 而 listz 里面只有 4 个元素, 所以即使 listx 有 7 个元素, listy 有 6 个元素,也不会继续执行了,只执行了 4 个元素的的计算。
Sorted
def reversed_cmp(x, y):
if x > y:
return -
1
if x < y:
return 1
return 0
sorted([
36,
5,
12,
9,
21], reversed_cmp)
Reduce
def add(x, y) :
return x + y
reduce(add, [
1,
2,
3,
4,
5])
reduce(
lambda x, y: x+y, [
1,
2,
3,
4,
5])
Zip
a = [
1,
2,
3]
b = [
4,
5,
6]
c = [
4,
5,
6,
7,
8]
zipped = zip(
a,b)
zip(
a,c)
zip(*zipped)