-1

我希望将列表中的每个项目打印在 EasyGUI 的同一文本框中的不同行上。我如何为此编码?

编辑:对不起,我有点含糊。让我进一步解释一下。我有一个名为组合的列表。它有 50-100 个条目。当我尝试在这样的文本框中输出它时:

eg.textbox(combinations)

它以一种段落格式打印出来。像这样:

项目,项目,项目,项目,项目,项目等。

我想打印它更像一个列表,每行一个项目,如下所示:

物品,

物品,

物品,

物品,

我如何为此编码?

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 回答