网址:http://www.pythonchallenge.com/pc/def/peak.html
这关肯定要求对python各个模块都有印象,甚至于熟悉,像我这种知道的不超过10个模块的懒鬼来说,这关只能在网上求助了。
想想也是,peakhell,听起来像什么?最慢的发音当然是“匹克,赫油”,对模块熟悉,又加上要下载的文件是.p为后缀,就知道是pickle,与发音反而无关矣。
照python的定义看,pickle - Create portable serialized representations of Python objects.即pickle是用于创建可移植的Python对象的序列化表示的模块,详细的我也说不了多少……
先上代码:
import re
import pickle
openfile = file('banner.p', 'r')
data = pickle.load(openfile)
for row in data:
output = ''
for entry in row:
output += entry[0]*entry[1]
print output
openfile.close()
首先,虽然看help(pickle)里面看到pickle的load(file)函数,但是我真是对这些不熟悉啊。只好临时抱佛脚,在网上查下pickle模块了。
至少后半部分的代码,确实写得很C语言外,看到网上的解法,全是用什么lambda 这种处理方式……
还有这种:
for linelist in banner: ... line = [ch * count for ch, count in linelist] ... print "".join(line)
继续吧,多练点。