Python 如何在列表中拆分句子?

Python 如何在列表中拆分句子?,python,Python,我试图创建一个函数来计算任何给定句子中的单词数量和平均单词长度。我似乎无法将字符串分成两个句子放入列表中,假设该句子有句号并以句号结尾 问号和感叹号应替换为句号,以作为列表中的新句子 例如:“你今天没吃8个橙子吗?我不知道你吃了没有。”应该是:[“你今天没吃8个橙子吗”,“我不知道你吃了没有”] 本例的平均长度为44/12=3.6 一个选项可以使用re.split: inp=“你今天吃了8个橙子吗?我不知道你吃了没有。” 句子=re.split(r’(?使用正则表达式拆分的示例: impor

我试图创建一个函数来计算任何给定句子中的单词数量和平均单词长度。我似乎无法将字符串分成两个句子放入列表中,假设该句子有句号并以句号结尾

  • 问号和感叹号应替换为句号,以作为列表中的新句子
  • 例如:
    “你今天没吃8个橙子吗?我不知道你吃了没有。”
    应该是:
    [“你今天没吃8个橙子吗”,“我不知道你吃了没有”]
  • 本例的平均长度为44/12=3.6

一个选项可以使用
re.split

inp=“你今天吃了8个橙子吗?我不知道你吃了没有。”

句子=re.split(r’(?使用正则表达式拆分的示例:

import re
s = "Hello! How are you?"
print([x for x in re.split("[\.\?\!]+",s.strip()) if not x == ''])

你应该用句号代替问号,而不是什么都没有!
text=text.replace(p,”)
这回答了你的问题吗?你如何将其添加到我提供的代码中?我尝试使用它时遇到错误。谢谢!句号也代表
def word\u length\u列表(text)下的句子结尾:
只需将我的代码片段中的
inp
替换为
text
,它应该可以工作。如果将
.strip()
移动到
re.split()
,您会得到一个稍微好一点的结果-我假设您想跳过真正的空行和只包含空格的行。
["Haven't you eaten 8 oranges today?", "I don't know if you did."]
Jon L. Skeet earned more point than anyone.  Gordon Linoff also earned a lot of points.
import re
s = "Hello! How are you?"
print([x for x in re.split("[\.\?\!]+",s.strip()) if not x == ''])