使用Python实现,给定单词组text和长度maxLen,已知单词短于maxLen。实现两端对齐,如某一行词的空格无法均匀分配,则右侧的空格数要多于左侧。文本的最后一行应左对齐,且单词之间不插入额外的空格
时间: 2024-09-09 15:12:44 浏览: 43
使用Python和Keras库构建一个简单的情感分析模型完整代码(附详细操作步骤).txt
在Python中,你可以使用内置的字符串处理和列表推导来实现这种两端对齐的文本格式化。以下是一个简单的函数,它接受一个单词列表(text)和最大行长度(maxLen),然后返回格式化的字符串:
```python
def justify_text(text, max_len):
lines = []
current_line = ''
for word in text:
if len(current_line + word + ' ') <= max_len:
current_line += word + ' '
else:
# 当当前行已满并且下一个单词会超过最大长度时,开始新的一行
lines.append(current_line.strip()) # 左侧对齐最后一行
current_line = word + ' '
# 添加最后一行到结果
if current_line:
lines.append(current_line.strip())
# 对每一行进行右对齐
justified_lines = [line.ljust(max_len) for line in lines]
return '\n'.join(justified_lines)
# 示例用法
words = ["apple", "banana", "cherry", "date"]
formatted_text = justify_text(words, 15)
print(formatted_text)
```
当你运行这段代码,如果输入的单词和最大行长度合适,比如输入`["cat", "dog", "elephant"]` 和 `10`,输出可能会像这样:
```
cat dog
elephant
```
如果最后一个单词不足以填充整个行,例如输入`["short", "very long word", "longest"]` 和 `10`,输出会变成:
```
short
very long word
longest
```
这里,最后一行进行了左对齐,并且只在必要时增加了空格。
阅读全文