我已经试图弄清楚这一点了。
我想采用较大的文本/字符串并将其拆分为3个单词的短语,然后将它们添加到数组中。
我尝试使用spilt()
,但是它没有按我希望的那样工作。
我对doinig的想法是如何使其起作用:
从字符串中的前3个单词开始,当我得到它们时,我将其放在一个数组中并移动1个单词,然后获取接下来的3个单词,依此类推。
这样做不好吗?
亲切的问候:)
答案 0 :(得分:2)
my_really_long_string = "this is a really long string"
split_string = my_really_long_string.split()
phrase_array = [" ".join(split_string[i:i+3]) for i in range(len(split_string) - 2)]
第一行仅代表您的字符串。
在那之后,假设在定义单词结尾时您所关心的就是所有空格。 (@andrew_reece对边缘案例的评论非常相关。)
下一个迭代在0到n-2的范围内,其中n是字符串的长度。它从split_string数组中提取了3个连续的单词,并用空格将它们连在一起。
这几乎肯定不是最快的处理方法,因为它具有拆分和联接的功能,但是非常简单。
>>> my_really_long_string = "this is a really long string"
>>> split_string = my_really_long_string.split()
>>> phrases = [" ".join(split_string[i:i+3]) for i in range(len(split_string) - 2)]
>>>
>>> phrases
['this is a', 'is a really', 'a really long', 'really long string']
>>>
答案 1 :(得分:1)
这可以工作。您可能要先去除字符的文本,而不要确定您的数据是什么。
x = 'alt bot cot dot eat fat got hot iot jot kot lot mot not'
x = [y for y in [x.strip().split(' ')[i:i+3] for i in range(0, len(x), 3)]]