代码练习记录
来源:互联网 发布:linux 自启动 编辑:程序博客网 时间:2024/06/05 20:29
高阶函数 map/reduce
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]:
def normalize(name): return name.capitalize()L1 = ['adam', 'LISA', 'barT']L2 = list(map(normalize, L1))print(L2)
Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积:
平常的写法如下:
def prod(L): for i in range(1,len(L)): L[i]=L[i-1]*L[i] return L[i]print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))
使用reduce()
from functools import reducedef prod(L): def f(x,y): return x*y return reduce(f,L)print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))
注:关于reduce和map函数
reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
例如,编写一个f函数,接收x和y,返回x和y的和:
def f(x, y): return x + y
调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算:
先计算头两个元素:f(1, 3),结果为4;
再把结果和第3个元素计算:f(4, 5),结果为9;
再把结果和第4个元素计算:f(9, 7),结果为16;
再把结果和第5个元素计算:f(16, 9),结果为25;
由于没有更多的元素了,计算结束,返回结果25。
利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456:
不知道怎么用map和reduce啊???哪个大佬知道
def str2float(s): return (float(s))print('str2float(\'123.456\') =', str2float('123.456'))
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
方法一:利用python自带的函数
from itertools import permutationsa=[]for i in permutations ([1,2,3,4],3): a.append(i)print len(a)print a
方法二
for i in range (1,5): for j in range (1,5): for k in range (1,5): if (i != j != k): print i,j,k
比较:因为数据太少可能没什么区别,但是数据增加到1~9中的三个数字的时候前一个会比后一个快7倍多
计算利润
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
一个小的问题是python 3x没有了raw_input第一种方法是直接的if else进行判断
def profit(num): profit1 =0(没有这句话,报错UnboundLocalError: local variable 'profit1' referenced before assignment) if num <20000: profit1 = num *0.2 elif 20000 < num < 40000: profit1 = num *0.1 else: print 787887878 return profit1x = input()print profit(x)
第二种方法
阅读全文
0 0
- 代码练习记录
- 练习记录
- 代码练习
- 代码练习
- 练习代码
- 代码练习
- 代码练习
- 代码练习
- 代码练习
- 练习代码
- (记录)练习的记录
- 缓冲区溢出练习记录
- POJ Volume1练习记录
- Linux练习记录
- openstack 练习记录
- shiny--练习记录
- SQL Server2005练习记录
- Kotlin项目练习记录
- Redis 学习(一)redis的安装
- LeetCode 394. Decode String
- Redis命令总结
- thread::join和thread::detach
- 设计模式-迭代器模式
- 代码练习记录
- Ganglia安装(Centos6.5)
- Git fetch和git pull的区别
- Kotlin在ViewHoler定义变量注意不要跟RecyclerView里面的ViewHolder中的itemView冲突
- Windows7: pip install bpython ,'ImportError: No module named fcntl'错误解决
- Spring Boot 配置文件
- 单例模式之 --饿汉模式与懒汉模式
- Ubuntu 10.04下如何在VirtualBox中修改虚拟硬盘的UUID
- JVM加载Class文件的原理机制