【发布时间】:2019-11-01 09:05:50
【问题描述】:
假设我在python 中有这个:
orig_string = 'I am a string in python'
如果我们假设我想每隔 10 个字符拆分一次这个字符串,但不拆分一个单词,那么我想要这个:
strings = ['I am a ', 'string in ', 'python']
或者这个(在分割处没有空格):
strings = ['I am a', 'string in', 'python']
因此,拆分应该恰好在每个情况下会拆分的单词之前进行。
否则,我会这样:
false_strings = ['I am a str', 'ing in pyt', 'hon']
只是提一下,在我的情况下,我想每 15k 个字符执行一次,但我在上面的示例中给出了每 10 个字符的示例,以便可以在此处以简洁的方式编写。
最有效的方法是什么?
【问题讨论】:
-
如果单个单词的长度超过 10 个字符会怎样?
-
@shash678,谢谢您的提问。我在我编辑的帖子中回答了这个问题。
-
textwrap.wrap(orig_string, 10)几乎做你想做的;唯一的区别是删除了原始字符串被拆分的空间,返回['I am a', 'string in', 'python']。 -
@chepner,是的,我不一定关心这些特定的空格。
-
@PoeteMaudit:如果你真的关心空格,我认为接受的答案不能回答这个问题。
标签: python python-3.x text split tokenize