我会谨慎地决定避开元组以支持无处不在的列表。你用过dis模块吗?当你创建一个列表和创建一个元组时,观察 Python 在字节码级别做什么:
>>> def f():
... x = [1,2,3,4,5,6,7]
... return x
...
>>> def g():
... x = (1,2,3,4,5,6,7)
... return x
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_CONST 1 (1)
3 LOAD_CONST 2 (2)
6 LOAD_CONST 3 (3)
9 LOAD_CONST 4 (4)
12 LOAD_CONST 5 (5)
15 LOAD_CONST 6 (6)
18 LOAD_CONST 7 (7)
21 BUILD_LIST 7
24 STORE_FAST 0 (x)
3 27 LOAD_FAST 0 (x)
30 RETURN_VALUE
>>>
>>>
>>> dis.dis(g)
2 0 LOAD_CONST 8 ((1, 2, 3, 4, 5, 6, 7))
3 STORE_FAST 0 (x)
3 6 LOAD_FAST 0 (x)
9 RETURN_VALUE
尽管它在 GUI 应用程序中可能永远不会成为问题(就像您的示例那样),但出于性能原因,您可能希望在代码中的任何地方都小心谨慎。