猿问

将字符串分成两个单词的列表,重复最后一个单词

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


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

但是我真正需要的是:


['Lorem ipsum', 'ipsum dolor', 'dolor sit', 'sit amet', 'amet, consectetur', 'consectetur adipiscing', ...]

我该如何运作?谢谢!


呼如林
浏览 252回答 3
3回答

波斯汪

您可以zip在以下两个单词上使用: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.']

慕妹3242003

简单的循环l = line.split(' ')result = []for i in range(len(l) - 1):    result.append(l[i] + ' ' + l[i+1])print(result) # ['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.', '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.']

holdtom

您正在寻找的是nltk.bigrams()import nltk bigrm = list(nltk.bigrams(line.split()))
随时随地看视频慕课网APP

相关分类

Python
我要回答