Python 查找文本中每个句子的长度

Python 查找文本中每个句子的长度,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我对python(以及一般的编码)是新手,在为学校做第一份作业时遇到了一个问题。我们需要实现几种简单的文本分析技术,在数小时的敲击键盘之后,我想我最好在这里询问一些指针。 问题在于其中一项任务。我应该找出给定文本中每个句子的字数,然后从最长到最短打印出每个句子的字数。到目前为止,我已经能够找出最长和最短的句子(甚至是第二长的句子)。然而,我被困在如何找出第二个最短的句子或第三个最长的句子,等等。 我的代码如下所示: length = sentences.split(". ")

我对python(以及一般的编码)是新手,在为学校做第一份作业时遇到了一个问题。我们需要实现几种简单的文本分析技术,在数小时的敲击键盘之后,我想我最好在这里询问一些指针。 问题在于其中一项任务。我应该找出给定文本中每个句子的字数,然后从最长到最短打印出每个句子的字数。到目前为止,我已经能够找出最长和最短的句子(甚至是第二长的句子)。然而,我被困在如何找出第二个最短的句子或第三个最长的句子,等等。 我的代码如下所示:

length = sentences.split(". ")
tokenized_sentences = [sentence.split(" ") for sentence in length]
longest_sen = max(tokenized_sentences, key=len)
longest_sen_length = len(longest_sen)
shortest_sen = min(tokenized_sentences, key=len)
shortest_sen_length = len(shortest_sen)    
print("The longest sentence is", (longest_sen_length), "words.")
print("The shortest sentence is", (shortest_sen_length), "words.")
我知道代码不够健壮,使用nltk或re可以节省大量时间。然而,这一段并不是很长或很复杂,我不确定我的教授会不会同意我在这一点上使用一个额外的平台。 任何提示都将不胜感激


编辑:文本示例:“再一次。比如说,你在乡下,在湖泊的高地上。几乎走你喜欢的任何一条路,十之八九它会把你带到一个山谷里,然后把你留在小溪边的一个池塘边。这里面有魔力。让最心不在焉的人陷入他最深的遐想中吧——让那个人站起来,脚踏实地,如果那一带都有水的话,他一定会把你引向水边。如果你曾经在美国大沙漠中成为一名形而上学的教授,尝试一下这个实验,如果你的商队碰巧有一位形而上学的教授。是的,每个人都知道,冥想和水是永远结合在一起的。”

如果我们假设你的整个测试都被命名为句子,那么你可以做下面的操作,按长度(降序)对句子进行排序

你将拥有所有句子的长度,你可以随意使用你想要打印的内容,你可以使用sort()方法根据长度对列表进行排序,你需要降序,所以只要把reverse=True

tokenized_sentences.sort(key=len,reverse = True)

您熟悉
sorted()吗
?你能举一个句子的例子吗?至少对我来说,你的一些变量的名称有点误导,让我很难理解代码。对我来说,
句子
应该称为
文本
,而你称为
长度
的列表应该称为
句子
长度是一个奇怪的问题e代表句子列表。我是!我的问题是,我必须包括这样的内容:“本文中最长的句子包含“X”字。本文中第二长的句子包含“Z”字。本文中最短的句子包含“Y”字,等等。”此时我不知道如何与sorted()组合。但我会查看链接,看看是否可以解开。谢谢@马蒂亚斯谢谢你提起这件事。我肯定会改变周围的情况,这样更容易理解。就目前而言,我知道每个部分的作用,但我应该从一开始就让它更容易理解的习惯开始。谢谢!这是完美的,它让我尽可能多地玩文本。
tokenized_sentences.sort(key=len,reverse = True)