我希望将列表中的每个项目打印在 EasyGUI 的同一文本框中的不同行上。我如何为此编码?
编辑:对不起,我有点含糊。让我进一步解释一下。我有一个名为组合的列表。它有 50-100 个条目。当我尝试在这样的文本框中输出它时:
eg.textbox(combinations)
它以一种段落格式打印出来。像这样:
项目,项目,项目,项目,项目,项目等。
我想打印它更像一个列表,每行一个项目,如下所示:
物品,
物品,
物品,
物品,
我如何为此编码?
我认为您的问题可能是您的清单太深了。根据文档,文本框将字符串或字符串列表作为输入。您正在向它传递一个字符串列表列表。如果您将数据展平,它可能会起作用。
尝试这个:
>>>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)