我希望能够做到这一点:
__ _ ____ [按钮]
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个,因为我相信一旦设置了数组长度就无法更改。
总结一下:我需要一种方法来制作任意数量的变量,然后随时添加更多我想要的变量。
答案 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)