|
|
1
58
我在最近的一个项目中为这个写了一个解决方案。我把它的大部分压缩到了一点小。
如果语句检查内容是否已经小于临界点,就会发生什么情况。如果不是,它会截短到所需的长度,在空间上拆分,删除最后一个元素(这样您就不会切掉一个单词),然后将其重新连接在一起(同时附加“…”。 |
|
|
2
44
下面是亚当解决方案中最后一行的稍好版本:
(这会稍微提高效率,并在字符串前面没有空格的情况下返回更合理的结果。) |
|
|
3
11
有一些细微之处可能对您有或没有问题,例如选项卡的处理(例如,如果您将选项卡显示为8个空格,但在内部将其视为1个字符),处理各种中断和不中断空格的味道,或允许中断连字符等。如果需要这样做,您可能需要查看文本包装模块。如:
大于max_大小的单词的默认行为是打破它们(使max_大小成为硬限制)。通过将break-long-words=false传递给wrap(),您可以更改为其他一些解决方案使用的软限制,在这种情况下,它将返回整个单词。如果希望此行为将最后一行更改为:
根据您想要的具体行为,还有一些其他的选项,比如展开选项卡。 |
|
|
4
7
或
或
|
|
|
5
6
你只要抓住第一个元素,就完成了…… |
|
|
6
3
测试:
|
|
|
7
1
从python 3.4+可以使用 textwrap.shorten . 使用OP示例:
|