一行代码显示“爱心”

>>> 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)

其他好玩的东东

最新文章

  1. 图片在保存的时候===》出现这个异常:GDI+ 中发生一般性错误
  2. Bots(逆元,递推)
  3. Java集合框架面试题
  4. Linux上Eclipse项目右键菜单没有Maven
  5. sql server2008企业版和标准版
  6. 2015GitWebRTC编译实录4
  7. 无需添加引用执行JS,发布无需带DLL、例子:QQMD5 QQGTK 13位时间戳 取随机数
  8. Apache Spark Streaming的简介
  9. delphi 判断是否出现滚动条
  10. CentOS7修改网卡为eth0
  11. MysqlHelp
  12. java 变长參数使用原则
  13. 排序算法的C#实现
  14. 基于vue的颜色选择器color-picker
  15. 使用VLC Activex插件做网页版视频播放器
  16. 【sping揭秘】23、Spring框架内的JNDI支持
  17. CentOS(6.8)7 安装 Mysql 5.7
  18. Kali2.0第一节
  19. Python-多线程.md
  20. 10: vue-router和单文件组件

热门文章

  1. 常用的7个.htaccess代码组织某个国家的IP访问
  2. 关于ellipsis多行换行的方案
  3. BeanUtils.copyProperties和PropertyUtils.copyProperties的使用区别
  4. java基础小知识
  5. UICollectionViewCell选中高亮状态和UIButton的高亮状态和选中状态
  6. js创建对象的四种方式
  7. Android使用AudioTrack发送红外信号
  8. UVa 712 S树
  9. UVa 221城市正视图(离散化)
  10. python ABC