如何在不预先设定数量的情况下定义任意数量的变量?
我想实现一个类似这样的功能:
_______ [按钮]
文本 []
文本2 []
文本3 []
依此类推。这里的__是用户输入文本的地方。当他们点击按钮时,输入的文本会被添加到“文本 []”的上方,其他内容会往下移动。我想为每一行文本创建一个类,每次用户添加新文本时,就生成这个类的新实例。问题是,我不知道怎么定义无限多个变量。有没有办法可以这样说:
for i in range (0, number):
g + i = Text(i)
这样,如果数字是5,它就会输出g0, g1, g2, g3, g4和g5?
我考虑过用数组,但遇到了以下问题:
我可以创建一个长度为6的数组,然后这样做:
for i in range(0, 5):
array[i] = Text(i)
但我觉得一旦数组的长度设定了,就不能再添加第七个元素了。
总结一下:我需要一种方法,可以创建任意数量的变量,并且在任何时候都能随意添加更多的变量。
3 个回答
0
你可能会发现使用字典更简单:
g={}
for i in range (0, number):
g[i] = Text(i)
3
我认为一旦数组的长度设定好,就不能再改变了。
可以使用列表,并用它的 append
方法:
array.append(Text(5))
我不太确定你用的是Python的 array
包里的数组,还是列表,但你应该使用列表。Python的列表是动态数组,而不是链表。根据你描述的问题,列表看起来是最合适的选择。
2
你可能想要的是一个 列表,而不是 数组。在Python中,这两者都可以使用(列表是核心功能,数组在 array
模块中),而且它们的长度都是可变的。要创建一个包含你想要的字符串的列表,可以使用
[Text(i) for i in range(0, 5)]
(这被称为 列表推导式。如果想了解更多,可以搜索这个词。)