为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼如林 2021-05-15 06:08:06
我需要将字符串拆分成每两个单词的列表,但要重复每对单词的最后一个单词。这是我通过使用发现其他问题的示例进行的尝试: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_twoprint(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', ...]我该如何运作?谢谢!
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以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.']



查看完整回答
反对 回复 2021-05-18
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

简单的循环


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



查看完整回答
反对 回复 2021-05-18
?
holdtom

TA贡献1805条经验 获得超10个赞

您正在寻找的是nltk.bigrams()

import nltk
bigrm = list(nltk.bigrams(line.split()))


查看完整回答
反对 回复 2021-05-18
  • 3 回答
  • 0 关注
  • 251 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号