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

时间:2011-11-24 16:01:15

标签: python arrays variables range infinite

我希望能够做到这一点:

__ _ ____ [按钮]

text []

text2 []

text3 []

等等。 __ 是用户输入文字的空间。当他们单击按钮时,该文本将添加到文本[]的上方,其他所有内容都会向下移动。我想有一个文本行的类,每次用户添加更多文本时,它只是对该类进行新的迭代。问题是,我不知道如何定义无限数量的变量。有没有办法说出类似的话:

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个,因为我相信一旦设置了数组长度就无法更改。

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

3 个答案:

答案 0 :(得分:3)

  

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

使用列表及其append成员:

array.append(Text(5))

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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

g={}
for i in range (0, number):
  g[i] = Text(i)