Python中[w*7*24 for w in range(10)]和['week %i'%w in range(10)]的意思?

巴鲁 发布于 2015/05/07 15:27
阅读 495
收藏 0
在《机器学习系统设计》一书中,第一章1.5节有一行代码:
plt.xticks([w*7*24 for w in range(10)],['week %i'%w in range(10)])
这里的:[w*7*24 for w in range(10)],['week %i'%w in range(10)]我不理解
原实例中,Python版本为2.7。我用的Python版本为3.4,结果报错:
NameError: name 'w' is not defined


请问,这行代码是什么意思,用Python3.4如何实现?


源代码如下:
import scipy as sp
import matplotlib.pyplot as plt


data=sp.genfromtxt("web_traffic.tsv",delimiter="\t")
x=data[:,0]
y=data[:,1]


x=x[~sp.isnan(y)]#清洗数据
y=y[~sp.isnan(y)]


plt.scatter(x,y)
plt.title("Web traffic over the last month")
plt.xlabel("Time")
plt.ylabel("Hits/hour")
plt.xticks([w*7*24 for w in range(10)],['week %i'%w in range(10)])
plt.autoscale(tight=True)
plt.grid()
plt.show()
加载中
0
Maxint64
Maxint64

这两个是列表推导式 第一个[w*7*24 for w in range(10)]的结果和下面代码执行后l的值一样

l = []
for w in range(10):
    l.append(w*7*24)

第二个写错了吧 应该是 ['week %i'%w for w in range(10)]

巴鲁
巴鲁
谢谢,已解决。
返回顶部
顶部