0

我希望能够按照以下方式做一些事情:

_ _ ____ [按钮]

文本 []

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

但是我认为以后不可能添加第 7 个,因为我相信一旦设置了数组长度,就无法更改。

总结一下:我需要一种方法来制作任意数量的变量,然后在以后随时添加我想要的更多变量。

4

3 回答 3

3

我相信一旦设置了数组长度,就无法更改。

使用列表及其append成员:

array.append(Text(5))

我不确定您是否真的使用了array包或列表中的 Python 数组,但您应该使用后者。Python 列表被实现为动态数组,而不是链表。正如您所描述的那样,它们似乎非常适合解决问题。

于 2011-11-24T16:02:40.640 回答
2

您可能需要一个列表,而不是一个数组。两者都存在于 Python 中(核心中的列表,array模块中的数组)并且都是可变长度的。要创建包含所需字符串的列表,请使用

[Text(i) for i in range(0, 5)]

(称为列表推导。搜索此术语以获取更多信息。)

于 2011-11-24T16:03:47.027 回答
0

您可能会发现使用字典更容易:

g={}
for i in range (0, number):
  g[i] = Text(i)
于 2011-11-24T16:09:02.150 回答