map()和filter()函数讲解与示例
1.map(function,iterable):会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
示例1:
lst
=
[
1
,
2
,
3
,
4
,
5
]
result
=
map
(
lambda
x : x
*
*
2
,lst)
print
(
type
(result))
print
(result)
print
(
list
(result))
#输出 <class 'map'>
#输出 <map object at 0x000001DFFA442470>
#输出 [1,4,9,16,25]
示例2:
#假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
def f(s):
return s[0:1].upper() + s[1:].lower()
lst = ['lll', 'lKK', 'wXy']
ret = map(f, lst)
print(type(ret))
print(ret)
print(list(ret))
输出结果:
# <class 'map'>
# <map object at 0x0000000005EE2E48>
# ['Lll', 'Lkk', 'Wxy']
示例3:
#如下列表,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
1、
print(list(ret))
输出结果:
# [{'IBM': 9110.0}, {'AAPL': 27161.0}, {'FB': 4218.0}, {'HPQ': 1111.25}, {'YHOO': 735.75}, {'ACME': 8673.75}]
2、用filter过滤出,单价大于100的股票有哪些
print(list(ret))
输出结果:
# [{'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'ACME', 'shares': 75, 'price':115.65}]
2.filter(function,iterable):筛选函数;函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
def func(x): return x % 2 = = 0 req = filter (func, range ( 10 )) print (req) #输出 [2,4,6,8] |