我需要列出从字符串开头开始的所有-gram列表,每个整数从1到M。然后返回一个由M个这样的列表组成的元组。
def letter_n_gram_tuple(s, M):
s = list(s)
output = []
for i in range(0, M+1):
output.append(s[i:])
return(tuple(output))
使用 letter_n_gram_tuple("abcd", 3)
输出结果应为:
(['a', 'b', 'c', 'd'], ['ab', 'bc', 'cd'], ['abc', 'bcd']))
然而,我的输出结果是:
(['a', 'b', 'c', 'd'], ['b', 'c', 'd'], ['c', 'd'], ['d']).
我应该使用字符串切片,然后将切片保存到列表中吗?