将字符串分成两个单词的列表,重复最后一个单词 [英] Split string into list of two words, repeating the last word

查看:102
本文介绍了将字符串分成两个单词的列表,重复最后一个单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将字符串拆分成每两个单词的列表,但要重复每对单词的最后一个单词. 这是我通过使用在其他问题中发现的示例而尝试的方法:

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.']

这篇关于将字符串分成两个单词的列表,重复最后一个单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆