我把单词及其含义与Python2.7.9一起打印出来。我把单词存储在一个列表中,而意义存储在另一个列表中。假设我定义了:
word=['a','the','go','python']
meaning=['meaning1','meaning2','veryveryveryveryveryverylongmeaning3','meaning4']
我想得到的输出如下:
a meaning1
the meaning2
go veryveryveryveryvery
verylongmeaning3
python meaning4
问题是std中的文本缠绕模块只会将单词的长“意义”分解为嵌套列表,而不会相应地在word列表中添加新行。我也不知道在“意思”中有多少行。还有其他编码技巧吗?
发布于 2015-08-28 01:33:48
这就是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
输出:
a
meaning1
the
meaning2
go
meaning3
python
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.
发布于 2015-08-28 01:36:00
使用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]))
输出
a meaning1
the meaning2
go veryveryve
ryveryvery
veryveryve
ryveryvery
veryveryve
ryveryvery
veryverylo
ngmeaning3
python meaning4
发布于 2015-08-28 01:15:44
您将无法连接列表和str。
print str(word[i])+'\t'+str(meaning[i])
https://stackoverflow.com/questions/32267317
复制