开发者社区 问答 正文

Python中[w*7*24 for w in range(10)]和['wee?报错

在《机器学习系统设计》一书中,第一章1.5节有一行代码:
plt.xticks([w724 for w in range(10)],['week %i'%w in range(10)])
这里的:[w724 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([w724 for w in range(10)],['week %i'%w in range(10)])
plt.autoscale(tight=True)
plt.grid()
plt.show()

展开
收起
爱吃鱼的程序员 2020-06-14 16:11:22 691 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    l=[]forwinrange(10):l.append(w*7*24)

    第二个写错了吧应该是 ['week%i'%wforwinrange(10)]

    谢谢,已解决。
    2020-06-14 16:11:37
    赞同 展开评论
问答标签:
问答地址: