0

私はこれに沿って何かをできるようにしたい:

__ _ ____ [ボタン]

文章 []

テキスト2 []

テキスト3 []

等々。__は、ユーザーがテキストを入力するためのスペースです。ボタンをクリックすると、テキスト [] と表示されている場所の上にそのテキストが追加され、それ以外はすべて下に移動します。テキスト行のクラスがあると思っていましたが、ユーザーがテキストを追加するたびに、そのクラスの新しい反復が作成されます。問題は、無限の変数を定義する方法がわからないことです。次の行に沿って何かを言う方法はありますか:

for i in range (0, number):
    g + i = Text(i)

number が 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))

パッケージまたはリストの Python 配列を実際に使用したかどうかはわかりませんarrayが、後者を使用する必要があります。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 に答える