我希望我的列表中的每个项目都在EasyGUI的同一文本框中的不同行上打印。我该如何为此编码?
编辑:对不起,我有点模糊。让我进一步解释。我有一个名为组合的列表。它有50-100个条目。当我尝试在这样的文本框中输出它时:eg.textbox(combinations)
它以一种段落格式打印它。就像这样:
项目,项目,项目,项目,项目,项目等
我想打印它更像一个列表,每行一个项目,如下所示:
项,
项,
项,
项,
我如何为此编码?
答案 0 :(得分: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)