编写一个将单词汇集成不超过宽度字符行的Python摘录。您可能会假设单词是单词列表,按顺序输出,width是行可能具有的最大字符数。只在不超过一行的字符限制的情况下,不能将另一个单词添加到行中时打印每一行。如何编写这段Python摘要
回答
好了,让我们假设你有一个字符串是这样的:
string = 'the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog'
它的长,所以有什么东西去。我们称宽度为w。
既然你要说话,你会想要将字符串拆分为空白字符''。这会给你一个单词列表。
您想检查列表中每个单词的长度与行中剩余可能字母的数量。因此,如果您的宽度为30,并且打印'the',则剩余的金额为27.如果您可以从剩余字符数中减去字长并仍为正数,则打印该字。否则,走上新的路线。
它说单词出现在列表中,这使得它更容易 – cmaynard 2011-03-07 20:36:14
检出textwrap模块。
import textwrap
words = 'some words to print out'
width = 10
for line in textwrap.wrap(words, width):
print line
在这个例子中,你基本上实现了朴素的单词换行。
这是原油和不雅的方式我会做到这一点:
- 创建您可以使用它在一行的输出转储到存储变量。
- 虽然该变量的长度小于或等于最大行长度,但是该字段列表中的第一个元素是
pop(-1)
,并将其附加到占位符字符串。 - 当这个条件不成立时(在弹出元素前测试它),打印该行并重新开始。
我不是为你做的,但这是我将开始的方式。
可能是你应该从
def wrap(words, maxWidth):
res = []
line = []
cur_len = 0
for word in words:
if cur_len + len(word) <= maxWidth:
line.append(word)
cur_len += len(word)
else:
res.append(line)
line = [word]
cur_len = len(word)
res.append(line)
return res
words = "quick brown fox jumps over the lazy dog".split(" ")
print '\n'.join(map(lambda line: ' '.join(line), process(words, 12)))
如果他用这个作为回答家庭作业的答案,他们会认为他是作弊,在这里有点太多的帮助 – cmaynard 2011-03-07 20:38:43
分开创建行我建议寻找到一个for循环和LEN()函数,这应该不超过10行代码。 像
for word in wordList:
if((len(word)+len(currLine))<maxLen):
//more code here that I ain't giving you
你应该追加一条外商投资企业的话(加上currLine的空间。当你没有足够的空间打印currLine并设置currLine字。希望这是足够的帮助,如果不是跟你的教授
- 1. 摘要Python的
- 2. Python:如何编写一段代码?
- 3. Python日志摘要计数
- 4. 如何在pdf文件中生成摘要摘要?
- 5. 你会如何递归编写这段代码?
- 6. 我应该如何编写这段代码?
- 7. 如何用bind&fmap编写这段代码?
- 8. 如何用cakephp 1.3 html helper编写这段代码?
- 9. 如何编写这个泛型类型的C#代码片段?
- 10. 我该如何着手编写这段代码?
- 11. 我该如何改进用Scala编写的这段代码?
- 12. 如何正确编写这个通用而不需要@SuppressWarnings
- 13. SummaryWriter不会将摘要写入文件
- 14. 如何在填写ASP.net验证摘要时调用JavaScript函数
- 15. 如何写火花sql数据框到excel文件的摘要
- 16. 如何编写或编辑Python文件?
- 17. Eclipse让我做这个摘要?
- 18. 这段代码为什么要编译?
- 19. 如何访问/配置摘要/段在Django草堆
- 20. Prestashop:如何将字段添加到订单摘要页面
- 21. java api上的“字段摘要”doc
- 22. 从AdvancedDatagridColumn删除组摘要字段
- 23. 作为字段的继承者摘要
- 24. Crystal Report VS2008中的摘要字段
- 25. 这些类型的python装饰器是如何编写的?
- 26. 如何使用Python编写这个Ruby gsub?
- 27. 如何在Python中编写这种“奇怪的”排序
- 28. 如何编写这个循环从C到Python?
- 29. 如何在jquery中写这段代码?
- 30. 如何重写这段代码?
你到目前为止做了什么? – 2011-03-07 20:11:20
我认为这是你的家庭作业,而不是我的。 – Blender 2011-03-07 20:17:47
[google](http://docs.python.org/library/textwrap.html)是你的朋友 – nmichaels 2011-03-07 20:23:17