如何在不预先设定数量的情况下定义任意数量的变量?

0 投票
3 回答
1434 浏览
提问于 2025-04-17 07:00

我想实现一个类似这样的功能:

_______ [按钮]

文本 []

文本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)]

(这被称为 列表推导式。如果想了解更多,可以搜索这个词。)

撰写回答