2012-04-08 10 views
-1

EasyGUIの同じテキストボックスに異なる行にそれぞれの項目を印刷したいとします。これをどのようにコードするのですか?EasyGUIの同じTextBox

編集:申し訳ありませんが、私は少し曖昧でした。私はさらに説明しましょう。私は組み合わせと呼ばれるリストを持っています。それは50から100のエントリがあります。私はこのようなテキストボックスに出力し、それをしようとすると:など

アイテム、アイテム、アイテム、アイテム、アイテム、アイテム、:

eg.textbox(combinations) 

それはこのformat.Like段落の一種で、それを印刷します

私はこのように、1行に1つのアイテムに、より多くのリストのようにそれを印刷したい:

アイテム、

アイテム、

アイテム、

アイテム、

は、どのように私はこれをコードしていますか?

+0

あなたはこれまで何を持っていますか? – George

+0

@Georgeまあ、私は組み合わせと呼ばれるリストがあります。それは50から100のエントリがあります。リストを(テキストボックスに)印刷しようとすると、テキストボックスの1つの巨大な塊に印刷されます。私が望むのは、リスト内の各項目を別々の行に置くことです。私はこの1つに困惑している、私は何も持っていない。 –

+0

@HershS .:彼は、あなたが与えた説明であなたの質問を更新しなければならないことを意味します。また、関連するコードも投稿する必要があります。 –

答えて

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'] 
>>> 

UPDATE

私はEasyGUIをダウンロードして、これが事実であることを確認し、あなたの問題。あなたが今行う必要があるのは、フラットリストの各項目に改行を追加することだけです。

>>>flat_list = ['Ww', 'Aa', 'Bb', 'Cc'] 
>>>with_newlines = '\n'.join(flat_list) 
>>>with_newlines 
'Ww\nAa\nBb\nCc\n' 
>>>eg.textbox(with_newlines) 
+1

-1これは簡単なことを複雑にしています。ちょうど '' \ n ''を実行してください。join(flat_list) 'を実行します。 [これをチェックする](http://stackoverflow.com/questions/10058621/easygui-output/10058987#comment12873551_10058987) – joaquin

+0

@joaquin:良い点:編集済み。 –

+0

もチェック[this](http://stackoverflow.com/questions/952914/making-a-flat-list-out-of-list-of-lists-in-python)。 – joaquin

関連する問題