2014-08-31 178 views
0

我试图列出名为CND_Info的列表中的所有项目,该列表由名为Index_Lookup_Conditions的字典组成。我想打印列表中的每一项,并以“〜”开头,但也可以将它打包成80个字符。这是迄今为止代码:Python:你如何同时加入列表和文本换行

PROG = str(input("Type condition name: ")) 
for key, value in Index_Lookup_Conditions.items(): 
    if (key == PROG): 
     print(key + "\n") 
     CND_Info = value.split("|") 
     print("~" + "\n~".join(CND_Info)) 

我可能做一个循环的每个项目在CND_Info到textwrap,但不知道是否有更简单的方法。

+0

普罗蒂普:'打印( '〜',* CND_Info,九月=” \ n〜')' – 2014-08-31 16:55:33

+0

如果一行在第80个字符处被破坏,结果行是否应该以'〜'开始,或者只是第一行? – 2014-08-31 16:57:55

回答

0

您可以使用textwrap.fill此:

>>> import textwrap 
>>> lst = [c*20 for c in 'abcdef'] 
>>> print '\n'.join('~' + textwrap.fill(x, 15) for x in lst) 
~aaaaaaaaaaaaaaa 
aaaaa 
~bbbbbbbbbbbbbbb 
bbbbb 
~ccccccccccccccc 
ccccc 
~ddddddddddddddd 
ddddd 
~eeeeeeeeeeeeeee 
eeeee 
~fffffffffffffff 
fffff 

使用print()功能(Python 3中):

>>> print(*('~' + textwrap.fill(x, 15) for x in lst), sep='\n') 
~aaaaaaaaaaaaaaa 
aaaaa 
~bbbbbbbbbbbbbbb 
bbbbb 
~ccccccccccccccc 
ccccc 
~ddddddddddddddd 
ddddd 
~eeeeeeeeeeeeeee 
eeeee 
~fffffffffffffff 
fffff 
0
from textwrap import fill 

CND_Info = ['Some text line', 
      'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' 
      'Praesent nisi leo, interdum vel nulla vitae, mollis rutrum velit.'] 

for line in CND_Info: 
    print fill('~' + line, 80) 
相关问题