博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-高阶函数习题练习
阅读量:6946 次
发布时间:2019-06-27

本文共 1630 字,大约阅读时间需要 5 分钟。

本文是针对map(),reduce()和filter()三个高阶函数的程序练习。

map()概念

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


##### 题目


> 利用
map()
函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。

> 例如输入:
[‘adam’, ‘LISA’, ‘barT’]
,输出:
[‘Adam’, ‘Lisa’, ‘Bart’]
 
1
2
3
4
5
6
 
>>>
def test(name_list):
print(map(
lambda name: name[
0].upper()+name[
1:].lower(), name_list))
>>> test([
'adam',
'LISA',
'barT'])
[
'Adam',
'Lisa',
'Bart']
>>>

reduce()概念

reduce()把一个函数作用在一个序列[x1, x2, x3…]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

如果你想学习Python可以来这个群,首先是四七二,中间是三零九,最后是二六一,里面有大量的学习资料可以下载。

题目

Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积

 
1
2
3
4
5
 
>>>
def prod(num_list):
print reduce(
lambda a,b : a*b , num_list)
>>> prod([
1,
2,
3,
4])
24

filter概念

filter()接收一个函数和一个序列,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素

题目

请尝试用filter()删除1~100的素数

概念补充: 素数,又称质数(prime number),有无限个。素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#coding=utf-8
#判断是不是素数,不是返回True,是返回False
def not_prime(num):
if(num <
2):
return
True
judge =
2
while(judge < num):
if num%judge ==
0:
return
True
judge +=
1
return
False
#将一个数字列表中所有的素数过滤删除掉
def prime_number(num_list):
print filter(not_prime,num_list)
#删除1~100以内的素数
prime_number(range(
100))
 
1
2
3
 
运行结果:
==================== RESTART: E:\Python\practices\test.py ====================
[
0,
1,
4,
6,
8,
9,
10,
12,
14,
15,
16,
18,
20,
21,
22,
24,
25,
26,
27,
28,
30,
32,
33,
34,
35,
36,
38,
39,
40,
42,
44,
45,
46,
48,
49,
50,
51,
52,
54,
55,
56,
57,
58,
60,
62,
63,
64,
65,
66,
68,
69,
70,
72,
74,
75,
76,
77,
78,
80,
81,
82,
84,
85,
86,
87,
88,
90,
91,
92,
93,
94,
95,
96,
98,
99]

转载地址:http://uoonl.baihongyu.com/

你可能感兴趣的文章
.NET Framework基础知识(五)
查看>>
IDEA使用的感触
查看>>
oracle 9i学习日志(2)--内存结构
查看>>
无刷新上传文件
查看>>
keepalived+nginx高可用双击主备配置说明
查看>>
github学习笔记
查看>>
Laravel-Administrator
查看>>
Exchange 2013部署系列之(十一)Office Web Apps部署
查看>>
IIS开启GZIP压缩故障
查看>>
Linux系统的Shell
查看>>
[硕.Love Python] InsertionSort(插入排序)
查看>>
黑盒测试与白盒测试区别
查看>>
找出链表中倒数第k个节点
查看>>
AGG第十五课 agg::rounded_rect 渲染圆角矩形
查看>>
Z字型转换
查看>>
唯一二叉搜索树
查看>>
在CentOS 7.4 搭建zabbix 3.4 监控系统
查看>>
Java日志框架
查看>>
sudo:sorry,you must have a tty to run sudo
查看>>
机房建设
查看>>