开箱

2024-06-30 07:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

    lstOfitems= list(leterCount.values())
    HstNumber = max(lstOfitems)
    ListOfkeys= list(leterCount.keys())
    NumberofChar = len(ListOfkeys)
    tess = turtle.Turtle()
    tess.color("white")
    tess.fillcolor("white")
    tess.pensize(3)
    wn = turtle.Screen()             
    wn.bgcolor("black")
    wn.setworldcoordinates(0-BORDER,0-BORDER,FORWARD*NumberofChar+BORDER,HstNumber+BORDER)
    for a,b in(lstOfitems,ListOfkeys):
        drawBar(tess, a, b)

上面的代码接收一个字符串并计算有多少个特许,然后存储在字典中。我试着在那之后做一个条形图,但是我遇到了一个问题,我得到了一个错误,说有要打开的文件。我该怎么解决这个问题?你知道吗

追溯到:

Traceback (most recent call last):

文件“C:\Users\Steven\Desktop\lab8exicrse2.py”,第76行,in 主() 文件“C:\Users\Steven\Desktop\lab8exicrse2.py”,第74行,main loopSTr() loopSTr中第47行的文件“C:\Users\Steven\Desktop\lab8exicrse2.py” 对于a,b in(lstOfitems,ListOfkeys): ValueError:要解包的值太多(应为2)


Tags: 文件inpyuserslistdesktoptessborder
2条回答

尝试将(lstOfitems,ListOfkeys)更改为zip(lstOfitems,ListOfkeys)(lstOfitems,ListOfkeys)只是一个tuple由两个list组成,您无法将其解包。但是,Python的内置^{}函数将返回一个元组迭代器,其中第i个元组包含每个参数序列或iterables的第i个元素;这正是您想要的。你知道吗

但是,更好的方法是使用字典中的'itemsmethod:for b,a来访问字典键/值对删除计数项():`

话虽如此,您是否知道Python collections有一个名为^{}dict子类,它可以做您想要的事情?你可以这样使用它:

from collections import Counter

c = Counter('gallahad') # a new counter from an iterable
# c will then be: Counter({'a': 3, 'l': 2, 'h': 1, 'g': 1, 'd': 1})

我想,你想要这样的东西:

 for b,a in leterCount.items():
    drawBar(tess, a, b)

相关问题 更多 >