ValueError: too many values to unpack Tkinter Listbox
ValueError: too many values to unpack Tkinter Listbox
当使用 Tkinter 编写一个简单的程序将字典中的值和键输出到 python 中的列表框时,出现以下错误:
for key, value in mydict.itervalues():
ValueError: too many values to unpack
请看下面我的代码:
#!/usr/bin/python
import Tkinter as tk
mydict = {"0x00063":"6F 7D 9E 0E FF FF FF FF",
"0x00061":"FF FF FF FF FF FF FF FF",
"0x00062":"AA AA AA AA AA AA AA AA",
"0x00064":"00 00 00 00 00 00 00 00"}
guiMain = tk.Tk()
recvDisplay = tk.Listbox(guiMain)
for key, value in mydict.itervalues():
recvDisplay.insert(key, value)
recvButton = tk.Button(guiMain, text="Start Receive")
tranDisplay = tk.Listbox(guiMain)
tranButton = tk.Button(guiMain, text="Start Transmit")
recvDisplay.pack()
recvButton.pack()
tranDisplay.pack()
tranButton.pack()
guiMain.mainloop()
我需要能够将字典中的值和键输出到列表框 recvDisplay
,但我需要列表框自动刷新以便显示对字典的任何更改。
itervalues()
: Return 字典值的迭代器。
例如
>>> d = {"a":1, "b":2}
>>> d.itervalues()
<dictionary-valueiterator object at 0xb7201144>
>>> for i in d.itervalues():
... print i, type(i)
...
1 <type 'int'>
2 <type 'int'>
>>>
items()
: Return 字典的(键,值)对列表的副本。
- 列表项
例如
>>> d.items()
[('a', 1), ('b', 2)]
iteritems()
: Return 字典(键,值)对的迭代器。
例如
>>> for i, j in d.iteritems():
... i , j
...
('a', 1)
('b', 2)
>>>
mydict.itervalues()
is an iterator over the values in mydict
. If you want both the keys and the values, use mydict.iteritems()
:
for key, value in mydict.iteritems():
recvDisplay.insert(tk.END, '{}, {}'.format(key, value))
注意:一个列表框只有一列。如果您希望多个列分别显示键和值,您将需要一个不同的小部件,例如 treectrl.MultiListbox,或者将两个 Listboxes
并排放置。
当使用 Tkinter 编写一个简单的程序将字典中的值和键输出到 python 中的列表框时,出现以下错误:
for key, value in mydict.itervalues():
ValueError: too many values to unpack
请看下面我的代码:
#!/usr/bin/python
import Tkinter as tk
mydict = {"0x00063":"6F 7D 9E 0E FF FF FF FF",
"0x00061":"FF FF FF FF FF FF FF FF",
"0x00062":"AA AA AA AA AA AA AA AA",
"0x00064":"00 00 00 00 00 00 00 00"}
guiMain = tk.Tk()
recvDisplay = tk.Listbox(guiMain)
for key, value in mydict.itervalues():
recvDisplay.insert(key, value)
recvButton = tk.Button(guiMain, text="Start Receive")
tranDisplay = tk.Listbox(guiMain)
tranButton = tk.Button(guiMain, text="Start Transmit")
recvDisplay.pack()
recvButton.pack()
tranDisplay.pack()
tranButton.pack()
guiMain.mainloop()
我需要能够将字典中的值和键输出到列表框 recvDisplay
,但我需要列表框自动刷新以便显示对字典的任何更改。
itervalues()
: Return 字典值的迭代器。
例如
>>> d = {"a":1, "b":2}
>>> d.itervalues()
<dictionary-valueiterator object at 0xb7201144>
>>> for i in d.itervalues():
... print i, type(i)
...
1 <type 'int'>
2 <type 'int'>
>>>
items()
: Return 字典的(键,值)对列表的副本。- 列表项
例如
>>> d.items()
[('a', 1), ('b', 2)]
iteritems()
: Return 字典(键,值)对的迭代器。
例如
>>> for i, j in d.iteritems():
... i , j
...
('a', 1)
('b', 2)
>>>
mydict.itervalues()
is an iterator over the values in mydict
. If you want both the keys and the values, use mydict.iteritems()
:
for key, value in mydict.iteritems():
recvDisplay.insert(tk.END, '{}, {}'.format(key, value))
注意:一个列表框只有一列。如果您希望多个列分别显示键和值,您将需要一个不同的小部件,例如 treectrl.MultiListbox,或者将两个 Listboxes
并排放置。