将字符串分成两个单词的列表,重复最后一个单词
问题描述:
我需要将字符串拆分成每两个单词的列表,但要重复每对单词的最后一个单词. 这是我通过使用在其他问题中发现的示例而尝试的方法:
I need to split a string into a list of each two words, but repeating the last word of each pair of words. Here is what I tried, by using examples I found for other questions:
line = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."""
def split_line(in_line):
line_sp = line.split(" ")
line_two = [" ".join(line_sp[i:i + 2]) for i in range(0, len(line_sp), 2)]
return line_two
print(split_line(line))
结果变为:
['Lorem ipsum', 'dolor sit', 'amet, consectetur', 'adipiscing elit,', 'sed do', 'eiusmod tempor', 'incididunt ut', 'labore et', 'dolore magna', 'aliqua.']
但是我真正需要的是这个
But what I actually need is this:
['Lorem ipsum', 'ipsum dolor', 'dolor sit', 'sit amet', 'amet, consectetur', 'consectetur adipiscing', ...]
我如何使其起作用? 谢谢!
How can I make it work? Thanks!
答
您可以在以下两段单词上使用zip
:
You can use zip
on the following two slices of words:
words = line.split()
print(list(map(' '.join, zip(words[:-1], words[1:]))))
这将输出:
['Lorem ipsum', 'ipsum dolor', 'dolor sit', 'sit amet,', 'amet, consectetur', 'consectetur adipiscing', 'adipiscing elit,', 'elit, sed', 'sed do', 'do eiusmod', 'eiusmod tempor', 'tempor incididunt', 'incididunt ut', 'ut labore', 'labore et', 'et dolore', 'dolore magna', 'magna aliqua.']