map reduce filter

map   映射

Map(映射)是一种可迭代的键值对(key/value)结构。

所有的值都可以通过键来获取。

Map 中的键都是唯一的。

Map 也叫哈希表(Hash tables)。

Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。

默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.

例:

# map
names = ['alex', 'wupeiqi', 'yuanhao', 'kevin', 'hu老师']
# 方式一:手动实现
# new_names=[]
# for name in names:
# new_names.append(name+'dsb')
# print(new_names)

# 方式二:列表生成式
new_names = [name + 'dsb' for name in names]
# print(new_names)

# 方式三:map+匿名函数
res = map(lambda x: x + 'dsb', names)
# print(res)
# print(list(res))

****************************************************************************************************************************************************************************

描述

reduce() 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

语法

reduce() 函数语法:

reduce(function, iterable[, initializer])

参数

  • function -- 函数,有两个参数
  • iterable -- 可迭代对象
  • initializer -- 可选,初始参数

返回值

返回函数计算结果。


*******************************************************
from functools import reduce

res=reduce( lambda x,y:x+y ,[i for i in range(100)],100)
print(res)
**************************************************************************************
# reduce
# 方式一:手动实现
# res=0
# for i in range(101):
# res+=i
# print(res)

# 方式二:列表生成式
# print(sum([i for i in range(101)]))

# 方式三:reduce+匿名函数
from functools import reduce
# print(reduce(lambda x,y:x+y,[i for i in range(101)],100))
# print(reduce(lambda x,y:x+y,[i for i in range(101)]))
# print(reduce(lambda x,y:x+y,['h','e','l','l','o'],'----------'))

******************************************************************************************************************************************************************************

描述

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

注意: Pyhton2.7 返回列表,Python3.x 返回迭代器对象,具体内容可以查看:Python3 filter() 函数

语法

以下是 filter() 方法的语法:

filter(function, iterable)

参数

  • function -- 判断函数。
  • iterable -- 可迭代对象。

返回值

返回列表。


# filter
names=['alex_dsb','wxx_sb','kevin_sb','hu_sb','egon']
# 方式一:手动实现
new_names=[]
for name in names:
if name.endswith('sb'):
new_names.append(name)
print(new_names)

# 方式二:列表生成式
new_names=[name for name in names if name.endswith('sb')]
print(new_names)

# 方式三:filter+匿名函数
res=filter(lambda name:name.endswith('sb'),names)
print(res)

 

原文地址:https://www.cnblogs.com/frank007/p/9766931.html