Python函数式编程:从入门到走火入魔
一行代码显示“爱心”
>>> print'\n'.join([''.join([('AndyLove'[(x-y)%]if((x*0.05)**+(y*0.1)**-)**-(x*0.05)***(y*0.1)**<= else' ')for x in range(-,)])for y in range(,-,-)])
Python函数式编程:从入门到走火入魔
# @file: data.py
import random
from collections import namedtuple Student = namedtuple('Student', ['id', 'ans']) N_Questions =
N_Students = def gen_random_list(opts, n):
return [random.choice(opts) for i in range(n)] # 问题答案 'ABCD' 随机
ANS = gen_random_list('ABCD', N_Questions)
# 题目分值 ~ 分
SCORE = gen_random_list(range(,), N_Questions) QUIZE = zip(ANS, SCORE)
students = [
# 学生答案为 'ABCD*' 随机,'*' 代表未作答
Student(_id, gen_random_list('ABCD*', N_Questions))
for _id in range(, N_Students+)
] print(QUIZE)
# [('A', ), ('B', ), ('D', ), ...
print(students)
# [Student(id=, ans=['C', 'B', 'A', ...
正常方法:
mport data
def normal(students, quize):
for student in students:
sid = student.id
score =
for i in range(len(quize)):
if quize[i][] == student.ans[i]:
score += quize[i][]
print(sid, '\t', score) print('ID\tScore\n==================')
normal(data.students, data.quize)
"""
ID Score
================== ...
"""
函数式
def cal(quize):
def inner(student):
filtered = filter(lambda x: x[] == x[][], zip(student.ans, quize))
reduced = reduce(lambda x, y: x + y[][], filtered, )
print(student.id, '\t', reduced)
return inner
map(cal(QUIZE), students)
Python函数式编程:从入门到走火入魔的更多相关文章
- python 函数式编程学习笔记
		
函数基础 一个函数就是将一些语句集合在一起的部件,它们能够不止一次地在程序中运行.函数的主要作用: 最大化的代码重用和最小化代码冗余 流程的分解 一般地,函数讲的流程是:告诉你怎样去做某事,而不是让你 ...
 - Python黑客编程2 入门demo--zip暴力破解
		
Python黑客编程2 入门demo--zip暴力破解 上一篇文章,我们在Kali Linux中搭建了基本的Python开发环境,本篇文章为了拉近Python和大家的距离,我们写一个暴力破解zip包密 ...
 - python函数式编程,列表生成式
		
1.python 中常见的集中存储数据的结构: 列表 集合 字典 元组 字符串 双队列 堆 其中最常见的就是列表,字典. 2.下面讲一些运用循环获取字典列表的元素 >>> dic={ ...
 - (转)Python函数式编程——map()、reduce()
		
转自:http://www.jianshu.com/p/7fe3408e6048 1.map(func,seq1[,seq2...]) Python 函数式编程中的map()函数是将func作用于se ...
 - python 函数式编程:高阶函数,map/reduce
		
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
 - Python函数式编程(进阶2)
		
转载请标明出处: http://www.cnblogs.com/why168888/p/6411915.html 本文出自:[Edwin博客园] Python函数式编程(进阶2) 1. python把 ...
 - Python函数式编程——map()、reduce()
		
文章来源:http://www.pythoner.com/46.html 提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理 ...
 - python函数式编程之返回函数、匿名函数、装饰器、偏函数学习
		
python函数式编程之返回函数 高阶函数处理可以接受函数作为参数外,还可以把函数作为结果值返回. 函数作为返回值 def laxy_sum(*args): def sum(): ax = 0; fo ...
 - Python函数式编程简介
		
参考原文 廖雪峰Python函数式编程 函数 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程 ...
 
随机推荐
- 将对象序列化,反序列化到XML
			
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
 - oracle实现split函数功能
			
转载: http://blog.csdn.net/jojo52013145/article/details/6758279在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 R ...
 - 搞懂 SynchronizationContext
			
SynchronizationContext -MSDN 很让人失望 我不知道为什么,目前在.Net下关于这个类只有很少的资料.MSDN文档也只有很少的关于如何使用SynchronizationCon ...
 - OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)
			
实验平台:win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): a.鼠标拖拽旋转物体,类似于OGRE中的“OgreBites::CameraStyle: ...
 - 想一想social VR might just work
			
昨天玩了Oculus上的Casino VR(其实之前就知道这个瑞士公司,也下过standalone的PC client). 几把下来,居然觉得fun,总结起来: 1.是在一个immersive的环境中 ...
 - 【转载】oracle dbms_metadata.get_ddl的使用方法总结
			
转自:http://www.jb51.net/article/39715.htm dbms_metadata.get_ddl()用于获取对象的ddl,其具体用法如下. 注意:在sqlplus里,为了更 ...
 - 关于redis扩展安装及使用
			
11月23日,预留 http://blog.sina.com.cn/s/blog_68431a3b0102v6dz.html http://blog.csdn.net/rachel_luo/artic ...
 - Ubuntu下配置Pyspider环境
			
Ubuntu 14.04.4 LTS 1.ubuntu 系统自带Python 所以不用安装Python 注:安装前先更新下软件源 命令 :sudo apt-get update 2.开始安装pip 命 ...
 - python之目录文件操作
			
[1.os] 1.重命名:os.rename(old, new) 2.删除:os.remove(file) 3.列出目录下的文件 :os.listdir(path) 4.获取当前工作目录:os.get ...
 - [课程设计]Sprint One 总结&发表评论&团队贡献分
			
一.总结 第一次冲刺结束了,总体来说我们团队还是做得不错的,完成了既定的目标,希望接下来还能保持这样的动力,fighting... ● 二.围观其他组并发表评论 ● http://www.cnblog ...