使用列表作为Listbox变量而不是元组

时间:2012-12-31 18:30:11

标签: python tkinter

是否可以将列表作为Tkinter列表框列表变量?或者它必须是一个元组?我真的想在列表中进行更改,因此我无法使用元组。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用list()和/或tuple()功能?使用这些,您可以将列表或元组列入列表。

alist = [1,2,3]
atuple = (4,5,6)

new_tuple = tuple(alist)   # returns (1,2,3) which is a tuple
new_list = list(atuple)    # returns [4,5,6] which is a list

因此,如果listvariable将数据作为元组返回,那么您可以读取列表(使用get()方法),将其更改为列表类型(使用list()),进行更改并通过您的数据(使用tuple()set()方法)。但是,一般情况下,如果某个窗口小部件仅适用于给定的变量类型,请考虑这是为什么以及为什么您的数据类型不同。


这里有几个关于何时/为什么在Python中使用列表或元组的好问题。

python: list vs tuple, when to use each?

  • 接受的答案表明,元组通常用于异构数据,而且列表是同质数据
  • 另一个答案指出,元组是不可变的(一旦分配,数据就无法更改),而列表是可变的

另一个问题(What's the difference between list and tuples in Python?)提到了这些相同的观点以及与该主题的几篇文章的链接。

最后,Listbox widget上的此链接提到了listvariable及其get / set方法。