获取包含 3 个单词的短语
Get phrases with 3 words
我已经尝试解决这个问题一段时间了。
我想取一个大 text/string 并将其拆分为 3 个词的短语,然后将它们添加到一个数组中。
我已经尝试使用 spilt()
,但它并没有像我希望的那样工作。
为了让它发挥作用,我在想什么:
从字符串中的前 3 个单词开始,当我得到它们时,我将其放入一个数组中并移动 1 个单词并取出接下来的 3 个单词,依此类推。
这样做不好吗?
亲切的问候:)
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']
>>>
这行得通。您可能想先去除字符文本,但不确定您的数据是什么。
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)]]
我已经尝试解决这个问题一段时间了。
我想取一个大 text/string 并将其拆分为 3 个词的短语,然后将它们添加到一个数组中。
我已经尝试使用 spilt()
,但它并没有像我希望的那样工作。
为了让它发挥作用,我在想什么:
从字符串中的前 3 个单词开始,当我得到它们时,我将其放入一个数组中并移动 1 个单词并取出接下来的 3 个单词,依此类推。
这样做不好吗?
亲切的问候:)
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']
>>>
这行得通。您可能想先去除字符文本,但不确定您的数据是什么。
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)]]