-1

リスト内の各アイテムをEasyGUIの同じテキストボックスの異なる行に印刷したいと思います。これをコーディングするにはどうすればよいですか?

編集:申し訳ありませんが、私は少し漠然としていました。さらに説明させてください。組み合わせというリストがあります。50〜100のエントリがあります。次のようなテキストボックスに出力しようとすると、次のようになります。

eg.textbox(combinations)

ある種の段落形式で印刷します。次のようになります。

アイテム、アイテム、アイテム、アイテム、アイテム、アイテムなど。

次のように、1行に1つのアイテムを含む、リストのように印刷したいと思います。

アイテム、

アイテム、

アイテム、

アイテム、

これをコーディングするにはどうすればよいですか?

4

1 に答える 1

1

あなたの問題は、リストが深すぎることだと思います。ドキュメントによると、テキストボックスは文字列または文字列のリストを入力として受け取ります。文字列のリストのリストを渡しています。データを平坦化すると、うまくいく場合があります。

これを試して:

>>>l = [[["Ww"],["Aa"],["Bb"],["Cc"]]]
>>>
>>> def flatten(sList,eList = None):
...     if not eList: eList = []
...     for item in sList:
...             if type(item) == list:
...                     eList = flatten(item, eList)
...             else:
...                     eList.append(item)
...     return eList
... 
>>> flatten(l)
['Ww', 'Aa', 'Bb', 'Cc']
>>> 

アップデート

EasyGUI をダウンロードして、これが実際にあなたの問題であることを確認しました。ここで行う必要があるのは、平坦化されたリストの各項目に改行を追加することだけです。

>>>flat_list = ['Ww', 'Aa', 'Bb', 'Cc']
>>>with_newlines = '\n'.join(flat_list)
>>>with_newlines
'Ww\nAa\nBb\nCc\n'
>>>eg.textbox(with_newlines)
于 2012-04-09T19:29:11.737 に答える