2024-05-12 12:43:39 发布
网友
假设我有一个单词列表,如下所示:
['The', 'Quick', 'Brown', 'Fox', 'Jumps', 'Over', 'The', 'Lazy', 'Dog']
我想生成一个列表列表,每个数组包含3个单词,但每个单词可能有一个三元组。所以应该是这样的:
['The', 'Quick', 'Brown'] ['Quick', 'Brown', 'Fox'] ['Brown', 'Fox', 'Jumps']
等等。什么是获得这个结果的最好方法?
b = [a[i:i+3] for i in range(len(a)-2)]
对于可切片序列(如列表),已经给出的答案可以正常工作。对于任何iterable中的单词的一般情况(无论是序列、文件还是其他):
def NbyN(seq, N=3): it = iter(seq) window = [next(it) for _ in range(N)] while True: yield window window = window[1:] + [next(it)]
>>> words ['The', 'Quick', 'Brown', 'Fox', 'Jumps', 'Over', 'The', 'Lazy', 'Dog'] >>> [words[i:i+3] for i in range(len(words) - 2)] [['The', 'Quick', 'Brown'], ['Quick', 'Brown', 'Fox'], ['Brown', 'Fox', 'Jumps'], ['Fox', 'Jumps', 'Over'], ['Jumps', 'Over', 'The'], ['Over', 'The', 'Lazy'], ['The', 'Lazy', 'Dog']]
对于可切片序列(如列表),已经给出的答案可以正常工作。对于任何iterable中的单词的一般情况(无论是序列、文件还是其他):
相关问题 更多 >
编程相关推荐