用Python在表中换行文本

2024-10-01 00:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python2.7.9将单词及其含义打印出来。我把单词储存在一张单子里,把意思储存在另一张单子里。 假设我定义了:

word=['a','the','go','python']    
meaning=['meaning1','meaning2','veryveryveryveryveryverylongmeaning3','meaning4']

我想得到如下输出:

^{pr2}$

问题是std lib中的textwrap模块只将单词的长“意义”中断到嵌套列表,而没有在单词列表中相应地添加新行。我也不知道在“意思”里有多少行。还有其他的编码技巧吗?在


Tags: thego列表定义单词word单子储存
3条回答

使用enumerate浏览列表,format格式化字符串输出,join合并含义。在

word=['a','the','go','python']    
meaning= [['meaning1'], ['meaning2'], ['veryveryve', 'ryveryvery', 'veryveryve', 'ryveryvery', 'veryveryve', 'ryveryvery', 'veryverylo', 'ngmeaning3'], ['meaning4']]
for i, value in enumerate(word):
    print "{}\t{}".format(value, "\n\t".join(meaning[i]))

输出

^{pr2}$

这就是textwrap.wrap()所做的;它返回一个行列表,末尾没有新行。你该怎么做就怎么做了。在

顺便说一句,你应该用dict来表示单词和意思,如果你想保持顺序的话,可以用OrderedDict。在

import textwrap

from collections import OrderedDict

words = ['a', 'the', 'go', 'python']
meanings = ['meaning1', 'meaning2', 'meaning3',
            'Python is a programming language that lets you work more quickly '
            'and integrate your systems more effectively. You can learn to '
            'use Python and see almost immediate gains in productivity and '
            'lower maintenance costs.']

wrapped_meanings = ['\n'.join(textwrap.wrap(meaning)) for meaning in meanings]

dictionary = OrderedDict(zip(words, wrapped_meanings))

for word, meaning in dictionary.items():
    print word
    print meaning
    print

输出:

^{pr2}$

您将无法连接list和str

print str(word[i])+'\t'+str(meaning[i])

相关问题 更多 >