猿问

python中的“太多值无法解包”错误

import pylab as pl


data = """AP 10

AA 20

AB 30

BB 40

BC 40

CC 30

CD 20

DD 10"""


grades = []

number = []


for line in data.split("/n"):

     x, y = line.split()

     grades.append(x)

     number.append(int(y))       

fig = pl.figure()

ax=fig.add_subplot(1,1,1)

ax.bar(grades,number)

p.show()

这是我的代码,我希望根据数据制作条形图。最初,当我运行代码时,在第17行中出现了缩进错误,在为所有for块添加一个空格后,在第16行中开始出现此“太多值以至于无法解包错误”。 python,我现在不知道该如何进行。


炎炎设计
浏览 807回答 3
3回答

弑天下

问题是您for-loop的拆分令牌是错误的(/n)而不是\n。但是,当您只想分割换行符时,实际上splitlines()在字符串上有一个-method可以做到这一点:您应该实际使用此方法,因为它也将处理* nix和Windows之间的不同换行符分隔符(* nix系统通常表示换行符通过\r\n,而Windows使用\n和旧的Mac OS使用\r:请查看Python文档以获取更多信息)您的错误发生在下一行:由于没有将字符串拆分成几行,因此您的整个字符串现在将在空格上拆分,这将产生比您尝试分配给元组的2个更多的值。

慕容708150

for line in data.split("/n")应该for line in data.split("\n")甚至更好:for line in data.splitlines()
随时随地看视频慕课网APP

相关分类

Python
我要回答